Redis设计 - Sentinel哨兵

背景

Redis单独实现了一个Sentinel模块,用于监听主从实例,主动下线问题的主实例,替换从实例,以达到Redis的高可用。

初始化

初始化Sentinel时指定监控的主实例列表masters,向主实例们改起连接,伪装成它们的一个客户端。Sentinel每隔十秒发送一条INFO消息给主服务器,获取主服务器状态,及对应的从服务器实例并连接。

连接其它结点

Sentinel还以两秒一次的频率,向主从实例publish指定频道的信息,同时也监控这个频道。通过这种方式不同的Sentinel服务器可以相互感知到对方——Sentinel之间因此知道了彼此的ip,彼此连接起来,伪装成对方的客户端。

下线

  • 主观下线:每秒一次向所有主、从、Sentinel服务器发送PING命令,若不返回说明断连。一定时间内断连,Sentinel将此服务器标为“主观下线”
  • 客观下线:足够多的Sentinel实例认为一个结点主观下线,则构成“客观下线”。
  • 故障转移:客观下线后Sentinel通过raft算法选出一个执行者,对下线的主服务器进行故障转移,挑选其从服务器成为新的主。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值