手把手教你看懂zookeeper的选举过程
Posted 大数据学编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你看懂zookeeper的选举过程相关的知识,希望对你有一定的参考价值。
小白都能看懂Zookeeper的选举过程
1.前提知识要点
正式版
ZAB协议:Zookeeper是非常重要的分布式协调组件,需要进行集群部署,
集群中会以一主多从的形式进行部署。Zookeeper为了保持数据的一致性,
使用了ZAB协议,这个协议解决了Zookeeper的崩溃恢复和主从数据同步的问题
人话版
ZAB:zookeeper是非常重要的分布式协调组件,需要通过集群来部署运作,
因为部署了很多台服务器,所以需要一个领袖来做领导人,如果没有领导人来统一指挥
,那么就容易乱套,因为每台服务器都可以发号施令,那么整个集群该听谁的?
所以就需要通过ZAB协议来进行协调,选举出一个领导人,
任何对数据产生影响的操作都得有Leader来进行发号施令,从而解决主从数据同步和集群的崩溃恢复问题
补充:事务性操作是指对数据的增删改,不包括查,因为查并不会对数据本身产生影响
zookeeper简图
2.选举过程
知识点
1:当集群中的节点首次上线的时候,会进行leader选举,并且这个选举结果一直有效,
直到leader宕机了,才会产生新的leader。
2:在选举过程中,只要票数占到总服务器的一半以上,那么便会直接当选为leader,
后续的服务器自动成为follower
3.:选举过程中,一开始服务器都是把票投给自己,但随着服务器的开启数量增加,
会产生一个该票过程,该过程我会通过画图详细说明
第一次选举简图
第一次选举: 每个服务器都会把票投给自己,此时无法选出leader,那么就会产生第二次选举。
第二次选举简图
注释
1:经过第一次的选举,每个服务器的投票箱中都有了一票。那么大家平票无法选出Leader,
则需要进行第二次选举
2:第二次选举,首先要进行选票的交换,大家互相比值,谁的值大,谁的票就会被投出去,
从而进入到投票箱中。
3:当投票箱中,某个服务器的得票超过总服务器的一半,那么该服务器就成为leader,
其他服务器自动成为follower
以上是关于手把手教你看懂zookeeper的选举过程的主要内容,如果未能解决你的问题,请参考以下文章
阿昌教你看懂mybatisplus的SqlSessionFacotry的创建过程