【分布式】Zookeeper的Leader选举-选举过程介绍-创新互联

【分布式】Zookeeper的Leader选举-选举过程介绍
选举开始,每台服务器都有一张选票,并且会投自己,选自己当选Leader。
    在投票完成后,会将投票信息发送给集群中的所有服务器(观察者服务器不参与选举)。

选票由两部分组成:服务器唯一标识myid和事务编号zxid,即(myid,xzid)。

河西网站建设公司创新互联公司,河西网站设计制作,有大型网站制作公司丰富经验。已为河西成百上千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的河西做网站的公司定做!

zxid越大说明数据越新,在选择算法中的权重越大。
myid越大,在选择算法中的权重越大。

比较选票时会先比较zxid,zxid大的获胜,zxid相同时比较myid,myid大的获胜,胜利方选票不变,失败方选票将变成与胜利方一样,并再次将该投票发送出去。

当有过半机器收到相同的投票信息,则选出Leader,选举结束。

例如:
有A,B,C三台服务器参与竞选,myid分别为1,2,3,zxid分别为9,9,8。
选举过程为:
A收到的选票为(2,9),(3,8),与自己的(1,9)比较,选票变为(2,9),投出。
B收到的选票为(1,9),(3,8),与自己的(2,9)比较,结果不变。
C收到的选票为(1,9),(2,9),与自己的(3,8)比较,选票变为(2,9),投出。

此时B机器拥有过半选票,当选为Leader。

由上面规则可知,通常那台服务器上的数据越新(ZXID会越大),其成为Leader的可能性越大,也就越能够保证数据的恢复。如果ZXID相同,则myid越大机会越大。

参考资料:

http://www.cnblogs.com/leesf456/p/6107600.html
https://www.cnblogs.com/yuyijq/p/4116365.html
http://www.cnblogs.com/ASPNET2008/p/6421571.html


当前标题:【分布式】Zookeeper的Leader选举-选举过程介绍-创新互联
本文网址:http://scyanting.com/article/dsiisc.html