千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

首页 视频教程 培训课程 师资团队 技术干货 常见问题 面试题 职场就业 零基础学Java 行业资讯
【热点话题】 Java技术干货 Java学习教程 Java学习笔记 Java面试题 Java培训问答 Java培训机构哪些好 Java职场就业
当前位置:Java培训  >  java学习教程  >  说说zookeeper的投票机制

说说zookeeper的投票机制

来源:千锋教育
发布人:wjy
时间: 2022-10-10 09:44:00 1665366240

  每个sever首先给自己投票,然后用自己的选票和其他sever选票对比,权重大的胜出,使用权重较大的更新自身选票箱。具体选举过程如下:

  1. 每个Server启动以后都询问其它的Server它要投票给谁。对于其他server的询问, server每次根据自己的状态都回复自己推荐的leader的id和上一次处理事务的zxid(系统启动时每个server都会推荐自己)

  2. 收到所有Server回复以后,就计算出zxid最大的哪个Server,并将这个Server相关信息设置成下一次要投票的Server。

  3. 计算这过程中获得票数最多的的sever为获胜者,如果获胜者的票数超过半数,则改 server被选为leader。否则,继续这个过程,直到leader被选举出来

说说zookeeper的投票机制

  4. leader就会开始等待server连接

  5. Follower连接leader,将最大的zxid发送给leader

  6. Leader根据follower的zxid确定同步点,至此选举阶段完成。

  7. 选举阶段完成Leader同步后通知follower已经成为uptodate状态

  8. Follower收到uptodate消息后,又可以重新接受client的请求进行服务了,目前有5 台服务器,每台服务器均没有数据,它们的编号分别是 1,2,3,4,5,按编号依次启动,它们的选择举过程如下:

  9. 服务器1启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器1的状态一直属于Looking。

  10. 服务器2启动,给自己投票,同时与之前启动的服务器1交换结果,由于服务器2的编号大所以服务器2胜出,但此时投票数没有大于半数,所以两个服务器的状态依然是LOOKING。

  11. 服务器3启动,给自己投票,同时与之前启动的服务器1,2交换信息,由于服务器3 的编号最大所以服务器3胜出,此时投票数正好大于半数,所以服务器 3 成为领导者,服务器1,2 成为小弟。

  12. 服务器4启动,给自己投票,同时与之前启动的服务器1,2,3交换信息,尽管服务器 4 的编号大,但之前服务器3已经胜出,所以服务器4只能成为小弟。

  13. 服务器5启动,后面的逻辑同服务器4成为小弟。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区

14天品质课程免费学

10年以上业内强师带你蜕变精英

提交领取