突破Java面试(23-9) - 深入解析Redis哨兵底层原理
# 0 Github
1 sdown和odown转换机制
两种失败状态
1.1 概念
- sdown主观宕机
一个哨兵自己觉得一个master宕机 - odown客观宕机
quorum数量的哨兵都觉得一个master宕机
1.2 达成条件
- sdown
一个哨兵ping一个master,超过is-master-down-after-milliseconds - odown
一个哨兵在指定时间内,收到了quorum指定数量的其他哨兵也认为那个master是sdown了,那么就认为是odown
2 自动发现机制
通过Redis的pub/sub实现哨兵互相之间的发现,每个哨兵都会往__sentinel__:hello这个channel发一个消息,此时所有其他哨兵都可消费到该消息,于是感知到其他哨兵的存在.
每隔2s,哨兵都会往自己监控的某个master+slaves对应的__