美文网首页
Redis设计 - Sentinel哨兵

Redis设计 - Sentinel哨兵

作者: 陀氏 | 来源:发表于2020-05-02 16:58 被阅读0次

    背景

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

    初始化

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

    连接其它结点

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

    下线

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

    相关文章

      网友评论

          本文标题:Redis设计 - Sentinel哨兵

          本文链接:https://www.haomeiwen.com/subject/lsgkghtx.html