【分布式】Zookeeper的Leader选举-选举过程介绍

发布时间:2020-07-01 14:10:11 作者:wx5858ba2dd00dd
来源:网络 阅读:913

【分布式】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

推荐阅读:
  1. zookeeper(7)源码分析-集群Leader选举FastLeaderElection
  2. MongoDB的选举过程是怎样的

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

zookeeper 过程介绍 zookeepe

上一篇:C语言的注释方式有哪些

下一篇:多媒体通信之网络防火墙穿越知多少?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》