关于脑裂问题的学习

脑裂问题一般指的是采用主从(master-slave)架构的分布式系统中,出现了多个活动的主节点的情况。但正常情况下,集群中应该只有一个活动主节点。

下面来说一下相关的解决方案,主要以下几种:

1.法定人数/多数机制(Quorum)
2.隔离机制(Fencing)
3.冗余通信机制(Redundant communication)

4.纪元机制(实际就是集群每次选举出一个Leader时,都会自增纪元值,类似一个id)

关于这四种方式的相关文章:文章1文章2

再具体说一说我们常见的中间件都用了哪些方式来解决。

zookeeper的脑裂解决方案(利用的是方法1,即法定人数,具体学习可到此

redis的解决方案(冗余通信机制,试探master的可用性,同时master本身根据参数,比如连接到他的slave个数,来拒绝写,具体学习可到此

kafka的脑裂(利用的是纪元机制,具体学习可到此

同时,上面的文章1也提到了以上几种解决方案,可以统一学习

猜你喜欢

转载自blog.csdn.net/jayxujia123/article/details/114187210