【Redis】简单介绍redis哨兵机制

为了解决redis主从复制模式致命缺点,当主节点宕机,影响整个系统运行,引入哨兵机制Sentinel。

Sentinel哨兵主要解决以下问题:

  • 监控,监控每个节点以及哨兵
  • 运行状态报警,当发现某个节点或哨兵出现问题,通知其他哨兵
  • 自动故障转化,当主节点宕机时,哨兵从原主节点下的所有可用从节点中选举出一个作为主节点,原主节点降为从节点,并将其他从节点的主节点配置改为指定新主节点
  • 配置中心,客户端初始化连接的是哨兵节点集合

哨兵配置如下:

在这里插入图片描述
哨兵工作原理:

  1. 哨兵是一个特殊的redis服务器,不同的是命令以及不会持久化,启动时,根据配置文件中master主节点ip和端口,创建两个连接,一为命令连接,获取服务器的运行状态(包括主节点、从节点的基本信息);二为订阅连接,订阅服务器的_sentinel_:hello频道(获取哨兵集群的其他哨兵节点,配置中只需配置主节点信息)
  2. 哨兵默认每隔十秒向节点发送info,获取主从服务器的信息,及时更新哨兵下的服务器实例;每隔一秒向节点发送ping命令,根据有效时间内(down-after-milliseconds参数配置)返回内容判断服务器是否在线,有效回复内容包括PONG、LOADING、MASTERDOWN,其他均为无效回复,将服务器设定为主观下线(在有效时间内未回复有效内容,将被哨兵主观下线)
  3. 当主节点出现主观下线, 哨兵将询问其他哨兵主节点状态,当确认主节点状态为主观下线的哨兵数量达到配置数目(sentinel monitor mymaster 127.0.0.1 6379 2,2则表示数目)时,主节点被修改为客观下线
  4. 当主节点被客观下线时,哨兵将选举出一位临时主哨兵(哨兵可以让其他哨兵选举自己,先到先得,选票高者当选),主哨兵根据原则(在线、slave-priority可设置从节点当选主节点服务器优先级,越小优先级越高)从节点中选出主节点,原主节点降为从节点并客观下线状态,并将其他从节点指向新主节点进行数据复制
发布了439 篇原创文章 · 获赞 14 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/LU_ZHAO/article/details/105541328