首先,如果集群中的某些节点挂了,如何保证可用性?
选举新的节点作为leader呗(就是让你慢慢看文章)。
1.常见的集群选举机制:
1. 1. Zookeeper的选举机制,
1.2. kafka的选举机制、
1.3.redis的选举机制、
1.4.Eureka的选举机制
区别:
2.1
Zookeeper集群的leader选举:
Zookeeper的leader选举机制,是这四种集群中最复杂的选举机制,同时也是这四种集群中最接近paxos算法的实现.
Zookeeper的选举机制有2个触发条件:集群启动阶段和集群运行阶段leader挂机。这2种场景下选举的流程基本一致,我们以集群运行阶段leader挂机为例来进行说明。leader挂机以后,重新选举leader,选举的流程如下:
1,Zookeeper集群中的follower检测到leader挂机,然后把自己的状态置为LOOKING,开始进行leader选举。
2,每台服务器选举自己为leader,然后把自己的选票通过广播通知其他服务器。
3,每台服务器接收来自其他服务器的选票,并进行合法性校验,主要有两点校验,选举轮次校验和服务器的状态的校验。
4,处理选票。每台服务器都会将自己的选票与其他服务器的选票进行PK,PK的规则如下:
第一个规则:首先进行ZXID的PK,大者获胜。
第二条规则: