ZooKeeper 怎么选出 Leader?
查看完整题解
参考回答
直接回答
默认集群里,投票成员互相发送选举通知,收到更合适的候选人就更新自己的票。等同一轮有足够多成员支持同一候选人,并满足结束条件,选举才收尾。
讲清原理
比候选顺序先看 peer epoch,再看最近记录的 zxid,最后用服务器 ID 打破平局。选出候选 Leader 后还要完成与法定数量成员的恢复和同步,才能正常提出新的事务。
例子与易错点
两台候选的 epoch 和 zxid 都一样,较大的服务器 ID 胜出。双方 peer epoch 相同但日志位置不同时,优先选日志位置较新的服务器。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。