什么是脑裂
2 分钟阅读
•
341 字
+
86 词
在分布式系统中,因为网络分区或节点故障导致节点之间的通信断开,进而导致数据一致性问题。
在一个高可用集群中,当多个服务器在指定的时间内,由于网络的原因无法互相检测到对方,而各自形成一个新的小规模集群,
并且各小集群当中,会选举新的master节点,都对外提供独立的服务。
由于网络断裂的原因,一个高可用集群中,实际上分裂为多个小的集群,这种情况就称为裂脑。
脑裂的严重后果是:
数据一致性的丧失,这对于依赖精确数据进行操作的系统来说是致命的。
脑裂导致的三大问题,这里再总结一下:
- **数据不一致:**不同子集之间可能对同一数据进行不同的写入,导致数据不一致。
- **重复写入:**在脑裂问题解决后,不同子集可能尝试将相同的写操作应用到主节点上,导致数据重复。
- **数据丢失:**新Matser会向slave 实例发送slave of命令,让所有slave 重新进行全量同步,在此之前会先清空实例上的数据,所以在主从切换期间,原slave上执行的写命令也会被清空。