侧边栏壁纸
  • 累计撰写 43 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

ZooKeeper选举过程

landonchan
2022-01-26 / 0 评论 / 0 点赞 / 5 阅读 / 1882 字
温馨提示:
欢迎留言讨论!若内容或图片失效,请留言反馈。若不小心影响到您的利益,请联系我们删除。

核心概念

Server id(或sid):服务器ID

配置文件中配置的服务器ID,ID越大,权重越大。

Zxid:事务ID

数据的事务ID,事务ID越大,数据越新,权重越大。

Epoch:逻辑时钟

投票的次数,同一轮次数是相同的。

Server状态:选举状态

LOOKING,竞选状态。

FOLLOWING,随从状态,同步leader状态,参与投票。

OBSERVING,观察状态,同步leader状态,不参与投票。

LEADING,领导者状态。

选举过程

以3台服务器为例。

服务器1启动

发起一次选举,服务器1投自己一票,此时服务器1票数一票,不够半数以上(2票),选举无法完成。

投票结果:服务器1为1票。

服务器1状态保持为LOOKING。

服务器2启动

发起一次选举,服务器1和2分别投自己一票,此时服务器1发现服务器2的id比自己大,更改选票投给服务器2。

投票结果:服务器1为0票,服务器2为2票,服务器2当选。

服务器1更改状态为FOLLOWING,服务器2更改状态为LEADING。

服务器3启动

发起一次选举,此时服务器1,2已经不是LOOKING 状态,不会更改选票信息。交换选票信息结果:服务器2为2票,服务器3为1票。此时服务器3服从多数,更改选票信息为服务器2。

服务器3并更改状态为FOLLOWING。

0

评论区