ZK 选举步骤

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值