哨兵机制学习笔记
本文摘抄自这里
哨兵机制
核心功能是主节点的自动故障转移
实现了下列功能:
- 监控:哨兵会不断的检查从节点和从节点是否运行正常
- 自动故障转移:当主节点不能正常工作,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点
- 配置提供者:当客户端在初始化时,通过连接哨兵来获得当前Redis服务的主节点地址
- 通知:哨兵可以将故障转移的结果发送给客户端
哨兵集群的组建
要归功于Redis提供的订阅/发布机制。在主从集群中,主库上有一个名为__sentinel__:hello的频道,不同哨兵就是通过它来互相发现。
主库下线的判断
- 主观下线:任何一个哨兵都可以监控探测,并作出Redis节点下线的判断
- 客观下线:由哨兵集群共同决定Redis节点是否下线
当某个哨兵判断主库下线后,会给其他的哨兵发送is-master-down-by-addr命令。接着其他哨兵会根据自己和主库的连接情况,做出Y或者N的响应。如果赞成票数大于等于哨兵配置文件中的quorum配置项,则可以判断主库客观下线了
哨兵集群的选举
主要是用于判断完主库下线后,由哪个哨兵节点来执行主从切换。
新主库的选出
- 过滤掉下线后者短线的从节点
- 选择配置文件中 salve-priority 从节点优先级最高的
- 选择复制偏移量最大,只复制最完整的从节点
故障转移

浙公网安备 33010602011771号