欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

ZK选举步骤

时间:2023-04-15
zk 三类角色

follower:从节点,如果主节点挂了可以参与选举,可以处理所有的读请求,如果有写请求则转发给leader 节点

leader 主节点,将受到的所有写请求同步给所有的follower 节点询问,如果有超过一半同意则发送更改

observer 工作节点,可以处理读请求,如果有些请求则转发给leader 节点

主从选举

1.每个节点包含observer 节点都有 myid  就是节点id,不能重复

2.每个节点都有 maxId ,表示每个节点中最后一个数据的编号,大多数都是一样的

3.选举的时候每个节点(follower)都发送广播,将当前节点选举的结果推出去,同时收到其他的节点选举结果,然后一起计算

4.每个follower 节点收到的选举广播消息先对比 maxId 最大的一个为主,如果都一样,则再对比myid, 最大的为当选,然后再广播当前节点选举的结果,循环步骤,知道所有的follower 选举的结果一样 则 将当选的主节点 角色变更为leader

示例:

myid:1 maxId=4 leader

myid:2 maxId = 3 follower

myid:3 maxId = 4 follower

myid:4 maxId = 4 observer

如果 myid:1 主节点挂了之后 2 和3 会发送广播

第一轮广播:2 选举2 ,3 选举3 => 然后两个节点都进行计算 2节点计算结果为 3 ,3 计算结果为3

第二轮广播: 2 选举3 ,3 选举3 =》 2 节点没有后续操作,3节点判断结果为自己,则将自己的角色变更为 leader

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。