Redis 哨兵模式

哨兵模式是指通过多个 Sentinel 实例监视 Redis 节点的状态:在某个 master 节点下线后,从 slave 节点中选举新的 master 节点,保证服务正常运行

Sentinel 判断某个 Redis 节点是否下线的逻辑如下:

默认 Sentinel 每秒发送 PING 命令给所有监视的节点(包含 master、slave、sentinel 节点),通过节点返回判断是否下线。如果某个节点在 down-after-miliseconds 毫秒内连续返回无效答复,Sentinel 修改该节点对应数据结构、在 flags 属性设置 SRI_S_DOWN 标识,标识该节点处于主观下线状态

除了主观判断外,Sentinel 还需借助其它 Sentinel 实例进行客观判断:

Sentinel 向同样监视对应节点的 Sentinel 实例询问,判断对应节点是否已下线

  • 如果接收到足够数量(quorum 属性配置)的下线确认,Sentinel 修改该节点对应数据结构,在 flags 属性设置 SRI_O_DOWN 标识,标识该节点客观下线
  • 如果没有收到足够数量的下线确认,移除节点的客观下线状态
  • 如果节点返回 PING 命令结果有效,移除节点的主观下线状态

处于客观下线的节点如果是 master 节点,需要执行故障转移操作:

  1. 发起选举,选举出 master Sentinel 节点
  2. master Sentinel 从已下线的 master 节点的 slave 节点中选出一个升为 master 节点
  3. master Sentinel 设置所有 slave 节点从新的 master 节点同步数据
  4. master Sentinel 修改 old master 下线节点配置,当它重启后变为 slave 节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值