zk集群运行进程中,处事器推举的源码分解
上面说过QuorumPeer检测到当前处事器的状态是LOOKING的时辰,就会举办新一轮的推举,通过setCurrentVote(makeLEStrategy().lookForLeader());也就是FastLeaderElection的lookForLeader来举办初始选择,实现的方法也很简朴,首要的逻辑在FastLeaderElection.lookForLeader中实现: 根基流程先声名一下:
LOOKING: 都处于无Leader态,较量一下选票的是非,看是否更新本身的选票,假如更新了就同时关照给其他处事器 FOLLOWING、LEADING:声名集群中已经有Leader存在,更新一下本身的状态,竣事本轮投票 OBSERVING:这票没什么卵用,直接舍弃(OBSERVER是不参加投票的) 按照上面的流程,能够声名一下FasterLeaderElection确定选票更优的计策:
总结: 以上就是zk的默认选票流程,凭证ZAB协议的两种状态说明:
Leader处事器挂了,那么经验的和初始化流程相同的进程,选择Leader Follower处事器挂了,那么本身在执行推举的进程中,会收到其他处事器给的Leader选票信息,也可以确定Leader所属 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |