1、ZooKeeper选举机制
ZooKeeper Server
leader
只有1个,负责管理集群。
follower
多个,执行leader指令。leader挂掉,重新选举leader。
Leader选举过程
a)首先在/节点下创建ephemeral(临时的)目录/elect。b)每个zk服务器都在给目录下创建自己对应的节点,例
如/../zk_1,类型或者为sequence,或者为ephemeral。
zk集群为sequence的节点分配一个比前一个的大的
序号。
c)拥有最小序号者就是leader
2、ZooKeeper何时开始选举
Leader选举的前提
a)所有follower监视leader的节点
b)leader故障时,leader节点被自动删除。
c)删除操作触发所有follower的watcher事件。
d)所有follower按照上文的过程进行选举
从众现象:所有follower都要参与到leader选举过程中,资源消耗比较大,如何快选?
3、ZooKeeper快选Leader
只有一个follower参与选举
a)每个follower只对树形节点中自己之前的node设置watcher。
b)只有自己watch的follower挂掉后,自己才进行选举。
c)通常自己将成为下一个leader。
d)每次选举只有一个follower参与,速度很快。