zookeeper集群选举流程

zookeeper集群选举流程_第1张图片

zookeeper的集群选举流程(票数过半当选机制):

全新集群选举:

1.node1先启动,将票投给自己    node1:1票

2.node2再启动,将票投给自己    node1: 1票    node2: 1票

3.改票环节:查询谁的zid值大就投给谁    node1: 0票    node2: 2票

4.node3启动,将票投给自己    node1: 0票    node2: 2票   node3:1票

5.改票关节,查询谁的zid值大,就投给谁    node1: 0票    node2:0票    node3:3票

6.node3已经票数过半直接当选,其他服务自动分配follower角色

7.node4启动直接变为follower,node5启动直接变为follower

非全新集群选举:

leader宕机,集群需要重新选举,投票规则有变:

1.判断逻辑时钟是否相同,不同则本轮选举作废,统一逻辑时钟

2.统一逻辑时钟后,对比zid,大的胜出

3.如果逻辑时钟和zid都相同,那么比较myid,大的胜出

事务id:zid(随着数据量增大而增大)

服务器id:myid(配置文件自己定义)

集群数量:2N+1

集群数量过半即可提供服务

你可能感兴趣的:(zookeeper)