Zookeeper选举(fastleaderelection算法)

眉间皱痕 提交于 2019-12-22 15:15:39

1、选举相关概念:

选票:(myid,zxid,当前节点选取轮次,被推举服务器选举轮次,状态(looking))。

选举发生情况:启动时选举,运行时选举。

外部投票:其他服务器发送来的投票。

内部投票:服务器自身当前的投票。

选举轮次:epoch--leader选举周期。

pk:比较内部选票和外部选票,确定是否变更内部选票,主要是比较zxid和myid。

2、选举过程:

(1)每个服务器节点先初始化自己的选票,即(myid,zxid,当前节点选取轮次,被推举服务器选举轮次,状态(looking))。

(2)发送初始化选票到所有集群中的节点。

(3)接收外部选票

(4)判断选举轮次,内部选票选举轮次要是大于外部选票,就继续接收外部选票,如果小于等于外部的选举轮次,就进行选票pk,即判断自己是否要变更内部选票。

(5)变更内部选票,将选票发送至集群中。

(6)归档。每个节点将收到的所有外部选票进行归档。

(7)统计。判断是否有过半的服务器认可当前内部选票,如果是,那就选举结束,即超过一半选票同意新leader,那就成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!