前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >ZooKeeper群首Leader选举过程

ZooKeeper群首Leader选举过程

作者头像
青山师
发布2023-05-05 19:11:22
发布2023-05-05 19:11:22
1350
举报

群首Leader选举

请求、事务标识符

服务器选举中节点的状态

ZooKeeper实现选举的类是org.apache.zookeeper.server.quorum.QuorumPeer

查找群首leader QuorumPeer类的 run 方法实现了服务器的主要循环工作。当进入 LOOKING 状态,将会执行org.apache.zookeeper.server.quorum.Election.lookForLeader方法进行leader的选举,该方法返回前会将服务器状态设置为LEADING 或者FOLLOWING 状态,也可能是OBSERVING

一图胜千言–ZooKeeper选举过程

以下是正常情况下的选举过程,确实很顺利:

但是实际中可能存在各种场景,以下是其中一种S2接收S1投票延迟的情况:

虽然最后没有影响选举结果,但是S2选择S3,S3并不会以群首身份响应S2的请求,S2会在等待S3的响应而超时,并开始再一次的重试,这期间S2是无法处理任何客户端的请求的。 如果可以让S2在进行选举群首时多等待一会,等到S1的投票。

默认的群选举实现类为org.apache.zookeeper.server.quorum.FastLeaderElection implements Election,如果想自定义群首选举算法,需要实现 quorum 包中的Election接口。

更多连接:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 群首Leader选举
    • 请求、事务标识符
    • 服务器选举中节点的状态
    • ZooKeeper实现选举的类是org.apache.zookeeper.server.quorum.QuorumPeer
    • 一图胜千言–ZooKeeper选举过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档