sentinel是Redis高可用Ha的重要组成部分,在传统Redis master/slave架构下,担任对主从复制的状态监控,并在主节点异常后自动将从节点提升为主节点对外提供服务。
下图展示了一个在哨兵sentinel集群中监控redis主从复制的一个例子,其中:
1. Sentinel集群包括三个sentinel节点sentinel1、sentinel2、seninel3,sentinel集群各节点之间互相监控哨兵运行状态。
2.Sentinel集群各节点分别与Redis主节点进行ping命令,以检查Redis主节点的运行状态。
3.假设Sentinel集群检测到Redis主节点Master宕机,在指定时间内未恢复,则Sentinel集群就会对Redis做故障转移操作。
3.1 首先,Sentinel集群从各slave节点中挑选一台优先级最高的slave节点提升为Master节点。
3.2,其次,新的Master节点向原Master的所有从节点发送slaveof命令,让它们作为新Master的slave节点,并将新的Master节点数据复制数据各个slave节点上,故障转移完成。
3.3 最后,Sentinel集群会继续监视老的Master节点,老的Master恢复上线后,Sentinel会将它设置为新Master的slave节点。
3.4 故障转移后的拓扑图如下所示,在图中,slave节点slave-1被选举成为新的Master的节点。
原文地址:https://www.cnblogs.com/ilifeilong/p/12632231.html
时间: 2024-10-09 18:08:03