zookeeper选主过程
2018-08-13 11:09:43 0 举报
zookeeper选主过程
作者其他创作
大纲/内容
更新自己的投票改为(2,0),然后将投票发出去
投票
Server1
2、然后server2启动,server2启动后会与server1进行通信,都在找leader,所以就开始选主过程
Server1:第一轮投出选票(1,0)
Server2:收到Server1的选票(1,0)
不做任何变更
zookeeper选举流程
小于
相等
6、服务器统计所有投票,判断是否有过半的机器收到相同的投票信息
7、等确定了leader之后,每台服务器就会更新自己的状态,follower机器改为FOLLOWING,leader机器改为LEADEING
Server2:第一轮投出选票(2,0)
收到的投票SID为1,大于自己的投票SID2
SID是否大于自己的SID
收到的投票SID为2,大于自己的投票SID1
Server1启动
1、假设server1先启动,server1启动后发现集群中只有自己,这时是不会有选举行为的
ZXID是否大于自己的ZXID
Server3启动
相互通信
假设集群中有3台机器,当集群启动的时候,集群开始选主;假设启动顺序为Server1、Server2、Server3
Server1:收到Server2的选票(2,0)
那么leader就确定为SID为2的机器,也就是server2
大于
投票(2,0)
服务器统计到server1、server2的投票信息都是(2,0),已经有过半机器收到相同的投票
3、第一轮投票每台机器都会投给自己,我们以(SID,ZXID)的形式来表示投票的信息,其中SID就是机器的myid。然后各自将这个投票发送给其他所有机器
8、这时整个选主过程就完成了,等server3启动的时候,会首先进入崩溃恢复模式,然后找到leader,与leader同步信息,将自己的状态改为FOLLOWING,开始工作
Server2启动
Server2
4、每个服务器收到其他服务器的投票后,会检查是否是本轮投票、是否是来自looking状态的服务器等
5、收到投票后,需要将现有的投票信息与收到的投票信息进行比对;比对的规则如下:a. 先比较ZXID,如果收到的ZXID大于自己的ZXID,就认可收到的投票,将自己的投票信息改为收到的投票信息,并将该投票发送出去;若小与自己的ZXID,那么就坚持自己的投票不做任何变更b. 如果收到的ZXID等于自己当前的ZXID,那么就对比两者的SID(myid),如果收到的SID大于自己的SID,那么就认可收到的投票,将自己的投票信息改为收到的投票信息,将该投票发送出去;若小于自己的SID,那么就坚持自己的投票不做任何变更
Server3
收藏
收藏
0 条评论
回复 删除
下一页