Zookeeper选举过程

假设有5台机器


znode状态:looking、following、leading 、observing(提高读取效率)


初始化:

1、服务器d为1启动,广播,没有应答,此时处于looking状态

2、服务器id为2启动,与1交换,胜出;由于选举没有超过半数,此时处于looking状态

3、服务器id为3启动根据,前面的理论,被选举为leader

4、服务器id为4、5 因为前面3已经为leader,只能当小弟了

5、服务器id为3 与其他服务器同步数据,成功则为真正的“leader” , 其他的服务器则为“follower”


数据同步(leader不接受client的请求):

读,直接读就好了

写:

1、follower告之leader

2、leader通过lead_listen_port广播通知到其他的follower

3、当有超过一半follower接收到回复,leader告诉该follower可以回复客户端了


重新选举(基于fast leader算法):

条件 leader宕机,或者失去大多数follow

1、server根据自己的状态回复自己选举的serverid和上一次处理事务的zxid

2、收到回复后,计算出zxid最大的那个server,设为投票的server

3、超过一半就将这个server设置为leader




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值