什么是脑裂

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

目录