分布式架构中的共识机制——Redis-RAFT

2024-04-27  本文已影响0人  瑞瑞余之

在RAFT算法中,有三个角色

followers返回竞选结果

接下来在集群运行过程中,leader会在cluster-node-timeout(?)时间内发送心跳检测到各个followers,表明自己仍然存活。如果leader因为网络原因或内部原因挂了。此时余下followers会再次发起选举。选举过程和上面描述的一样。


重新发生选举

看到这里可能出现一个问题,如果新一次选举完成,但是原始的leader又恢复了,对于整个集群来说,岂不是出现了两个leader。这就是通常所说的脑裂现象。对于这种情况redis提供了两个配置:

min-slaves-to-write:主节点可以写入的最少从节点数
min-slaves-max-lag:主从进行数据复制时,从库给主库发送ACK消息的最大延迟秒数。

它意味着一旦leader可以写入的followers数目小于min-slaves-to-write或者follower返回给leader复制的ack消息超过了min-slaves-max-lag时,当前leader不能写入。这样即便原始leader还能功能,也无法继续接收客户端的写入请求,对于整个集群来说,还是只有一个leader在对外工作。

上一篇下一篇

猜你喜欢

热点阅读