redis系列-Sentiel哨兵工作原理

1.sentiel哨兵
    Sentiel哨兵是redis高可用的解决方案,由一个或多个Sentiel实例组成的Sentiel系统可以监视任意多个主服务器以及这些主服务器属下的多有从服务器。在主服务器进入下线状态时自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已经下线的主服务器继续处理命令请求。

2.sentiel与主服务器关系
    sentiel会创建连向被监听的主服务器的网络连接,sentiel将成为主服务器的客户端,它可以向主服务器发送命令,并在恢复中获取相关信息。
sentiel与主服务器会创建两个链接:
(1)命令连接:专门用于向主服务器发送命令并接收命令回复,sentiel会10秒一次向主服务器发送INFO命令
(2)订阅连接:用于订阅主服务器_sentiel_:hello频道

3.选举sentiel leader
     当一个主服务器被客观下线的时候,监视这个主服务器下线的 sentiel 就会进行一次协商,选举出一个领头 sentiel, 并由leader sentiel进行故障转移。所有的sentiel都有资格成为领头sentiel。选举步骤如下:
(1)在一个配置纪元内,源sentiel向目标sentiel发送SENTIEL is-master-down-by-addr命令,命令中runid为源sentiel的运行ID,表示源sentiel要求目标sentiel将自己设置为局部头领
(2)目标sentiel接收到 SENTIEL is-master-down-by-addr命令,采用先到先得的规则,将最先发送命令的sentiel设置为头领sentiel,并回复源sentiel,
回复中的leader_runid和leader_epoch参数记录了目标sentiel的头领sentiel运行id和配置纪元
(3)源sentiel接收到消息后会判断 leader_epoch, leader_runid和自己是否相同,如果相同则目标sentiel将自己设置为头领sentiel。
(4)如果某个sentiel接收到半数以上的sentiel选举自己为头领sentiel,那么将设置这个sentiel为头领sentiel。
在一个配置纪元内智能产生一个头领sentiel,如果在一段时间内没有选举出一个头领sentiel,那么在一段时间之后将继续进行选举,知道选举出零头sentiel


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值