Zookeeper的选举算法
zookeeper的选举的大概流程我们知道了,但是我们都知道,选举的过程是基于算法的,zookeeper的选举算法有哪些呢?在zookeeper中,提供了三种Leader选举的算法,分别是LeaderElection、UDP版本的FastLeaderElection以及TCP版本的FastLeaderElection三种选举算法。而选举算法,则是可以在zoo.cfg配置文件中的electionAlg属性来指定,这三种选举算法分别对应值为0-3,其中0为LeaderElection算法,使用的是UDP协议实现,1代表UDP版本的FastLeaderElection算法,这种算法是非授权模式,2代表的也是UDP版本的FastLeaderElection算法,不过这种使用的是授权模式,3代表是TCP协议实现的FastLeaderElection算法。
不过需要注意的是,从Zookeeper3.4.X版本开始,Zookeeper官方已经废弃了UDP协议实现的0-2这三种Leader选举算法,仅仅保留了3这一种TCP协议实现的FastLeaderElection算法,这也是为什么上面我们介绍选举的大致流程中不针对每一种选举算法进行分析的原因。
Leader选举的细节
学习了选举的大概流程以后,我们发现整体流程和算法的设计不难,但是具体如何处理常见的问题的?这个时候我们需要深入细节来学习,首先Zookeeper为了处理不同情况