配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的。这篇主要分析leader的选择机制,zookeeper提供了三种方式:。默认的算法是FastLeaderElection,所以这篇主要分析它的选举机制。描述Leader选择过程中的状态变化,这是假设全部实例中均没有数据,假设服务器启动顺序分别为:A,B,C。每个服务器在启动时都会选择自己做为领导,然后将投票信息发送出去,循环一直到选举出领导为止。默认是采用投票数大于半数则胜出的逻辑。目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动,它们的选择举过程如下:

理解zookeeper选举机制

理解zookeeper选举机制

理解zookeeper选举机制