zookeeper实现leader选举的基本原理

简单总结下leader选举 就是服务器先起2181端口,然后各个机器自己构建自己的票据,epoch,zxid,myid。所有机器构建好了之后,myid小的节点去链接myid大的机器,并且把自己的票据发过去,那端接收到了数据后会进行一个票据的比较,如果自己的票据没有人家发过来的大那么就把人家的票据写成自己的。反之发送自己的。他们之间的通信采用的是socket。第二轮甚至多轮后如果这时候的票据
过半了(某个机器的ID),那么他就是leader。选举完之后成为flower的节点要去主动连接leader,为数据同步做准呗。源码入口处是ZooKeeperServerMain.java的Main方法。感兴趣的可以自己研究看看。
这个票据比较的规则是先比较epoch,在比较zxid,在比较myId。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值