redis 集群模式中master选举机制和zookeeper集群中的选举以及nacos选举的对比记忆

最近翻到redis集群中某个master宕机后如何选举新的master出来时发现有点类似zookeeper中的选举【稍有不同】;

 

redis集群中:当某个master宕机之后,某个slave感知到他的master变为fail状态了,会将自身的epoch值加一,然后尝试变为master,向集群中的其他master询问自身能不能做新的master,如果超过一半的master同意了,他就会晋升为新的master,超不过一半此过程后重复(期间别的salve也可能会竞争),一旦被半数认可,会广播告知集群中的其他节点,即使后来master活过来因为spoch值过小,没人听他的,会自动降级为slave;

 

zookeeper(一致性协议ZAB)集群选举(假设5台):老的挂掉后,开始新的选举,先判断谁是最新事物id(zxid),如果存在一致,在判断节点id谁打谁做master,之后集群个节点的spoch值加1,这样即使老的活过来epoch值太小没有slave听他的,从而防止脑裂;【首次启动时的选举是在记电启动到刚超过一半第3台时选出节点id最大的为master】

 

nacos(一致性协议raft)

你可能感兴趣的:(redis 集群模式中master选举机制和zookeeper集群中的选举以及nacos选举的对比记忆)