1. 哨兵简介
1. 用来不断地检查master和slave是否运行正常 2. 当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知 3. 断开master与slave之间的连接,选一个slave作为新的master,将其他slave连接到该master,并告知服务端新的服务器的地址 注意: 哨兵也是一台redis,只是不提供数据服务,哨兵数量通常配置为单数
2. 监控阶段
1. 图示
3. 通知阶段
1. 图示
4. 故障转移阶段
1. 哨兵之间有一个互相的通信,如果其中一个获取到了master的信息,就会发送给其他哨兵。当一个哨兵发现连不上master时,其他哨兵就会去自行尝试,如果超过半数的哨兵都连不上,则认为master掉线,推出一个新的master出来 2. 在确认master掉线之前,哨兵之间也会推举出一个哨兵来决定选择哪一个slave作为master 3. 哨兵在选择新的master时,遵循以下原则
a. 在线的slave
b. 响应快的
c. 与master断开时间短的
d. 优先原则
1. 优先级
2. offset
3. runid