Redis哨兵模式原理剖析,监控、选主、通知客户端你真的懂了吗?

Redis哨兵模式提供高可用性,通过监控、选主和通知实现故障恢复。哨兵通过info命令获取集群拓扑,使用心跳检测判断主观下线和客观下线状态。当超过半数哨兵同意主节点客观下线时,启动主从切换。选举哨兵领导者类似Raft算法,避免选举冲突。新Master选择考虑slave-priority、数据完整性及runid。故障切换后,客户端通过哨兵的发布/订阅机制获知变更。
摘要由CSDN通过智能技术生成

Redis 除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis提供了哨兵模式,来进行故障恢复。

哨兵主要负责做三件事:

①监控,监控主、从节点是否正常运行

②选主,Sentinel集群需要选择一个Leader来进行主从切换。

③通知,选主完成后,需要把新主库的连接信息通知给从库和客户端。

Redis哨兵模式原理剖析,监控、选主、通知客户端你真的懂了吗?

1.状态感知

哨兵启动后只指定了master的地址,要想知道整个集群中完整的拓扑关系怎么做呢?

哨兵每隔10秒会向每个master节点发送 info 命令, info 命令返回的信息中,包含了主从拓扑关系,其中包括每个slave的地址和端口号。有了这些信息后,哨兵就会记住这些节点的拓扑信息,在后续发生故障时,选择合适的slave节点进行故障恢复。

那么有小伙伴会问,哨兵之间是如何通信的呢?

基于Redis提供的发布(pub)/订阅(sub)机制完成的。哨兵节点不会直接与其他哨兵节点建立连接, 而是首先会和主库建立起连接 ,然后向一个名为" sentinel:hello"频道发送自己的信息(IP 和端口),其他订阅了该频道的哨兵节点就会获取到该哨兵节点信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值