zookeeper中有三种选举算法,分别是LeaderElection,FastLeaderElection,AuthLeaderElection,
FastLeaderElection和AuthLeaderElection是类似的选举算法,唯一区别是后者加入了认证信息,
FastLeaderElection比LeaderElection更高效。我们只分析前两种算法。
LeaderElection






这个选举算法,会在启动时发送请求到所有集群节点,每个参与选举的节点的初始状态是LOOKING所以会选择自己当leader并返回自己的zxid,然后QuorumPeer会选择zxid最大的节点为leader,但这并不能保证zxid一定是服务器所有zxid里面最大的。

FastLeaderElection


此算法和LeaderElection不同的是它不会像后者那样在每轮投票中要搜集到所有结果后才统计投票结果,而是不断的统计结果,一旦没有新的影响leader结果的notification出现就返回投票结果。这样的效率更高。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐