一 概述
Sentinel是redis的高可用解决方案,由一个或者多个Sentinel实例组成的可以监测多个主服务器和主服务器下的从服务器
二 监控流程
如果Sentinel监控的主服务器挂掉了,他会由以下几个步骤重现选一个主服务器
- Sentinel会在从服务器中选择一个升级为新的主服务器
- Sentinal会向所有从服务器发送新的复制命令,让他们成为新主服务器的从服务器,当所有从服务器开始复制新的主服务器后,故障转移完成
- Sentinel会监事已下线的主服务器,他重现上线后,让他成为新的主服务器的从服务器
三 数据结构
哨兵是通过字典的数据结构来监视主服务器的信息
四 主节点选取
首先是投票算法是选出主sentinel。
选择健康状态从节点(排除主观下线、断线),排除5秒钟没有心跳的、排除主节点失联超过10*down-after-millisecends。
选择最高优先级中复制偏移量最大的从机。
如果还没有选出来,则按照ID排序,获取运行ID最小的从节点。