领导者Sentinel节点选举了解吗?

Redis使用了Raft算法实 现领导者选举,大致流程如下:

redis-6586ae3c-6b33-4c9f-8137-f02fc0e6cfae.png

  1. 每个在线的哨兵节点都有资格成为领导者。当一个哨兵节点确认主节点主观下线时,它会向其他哨兵节点发送 "sentinel is-master-down-by-addr" 命令,请求将自己设置为领导者。
  2. 收到该命令的哨兵节点会检查自己是否已经同意其他哨兵节点的 "sentinel is-master-down-by-addr" 命令。如果没有同意过其他命令,则会同意该请求;否则,会拒绝。
  3. 如果该哨兵节点发现自己得到的同意票数已经大于或等于最大值(max(quorum, num(sentinels)/2+1)),则它将成为领导者。
  4. 如果在此过程中没有选出领导者,将进行下一轮选举。

标签: java, Java面试题, Redis, Java问题合集, Java编程, Java问题精选, Java常见问题, Redis面试题