redis脑裂

脑裂

Raft 集群存在脑裂问题。在多机房部署中,由于网络连接问题,很容易形成多个分区
而多分区的形成,很容易产生脑裂,从而导致数据不一致
由于三机房部署的容灾能力最强,所以生产环境下,三机房部署是最为常见的。下面以
三机房部署为例进行分析,根据机房断网情况,可以分为五种情况:

情况一不确定

在这里插入图片描述

这种情况下,B 机房中的主机是感知不到 Leader 的存在的,所以 B 机房中的主机会发
起新一轮的 Leader 选举。由于 B 机房与 C 机房是相连的,虽然 C 机房中的 Follower 能够感知到 A 机房中的 Leader,但由于其接收到了更大 term 的投票请求,所以 C 机房的 Follower也就放弃了 A 机房中的 Leader,参与了新 Leader 的选举。

若新 Leader 出现在 B 机房,A 机房是感知不到新 Leader 的诞生的,其不会自动下课,
所以会形成脑裂。但由于 A 机房 Leader 处理的写操作请求无法获取到过半响应,所以无法完成写操作。但 B 机房 Leader 的写操作处理是可以获取到过半响应的,所以可以完成写操作。故,A 机房与 B、C 机房中出现脑裂,且形成了数据的不一致。

若新 Leader 出现在 C 机房,A 机房中的 Leader 则会自动下课,所以不会形成脑裂。

情况二形成脑裂

在这里插入图片描述
这种情况与情况一基本是一样的。不同的是,一定会形成脑裂,无论新 Leader 在 B 还
是 C 机房。

情况三无脑裂

在这里插入图片描述
A、C 可以正常对外提供服务,但 B 无法选举出新的 Leader。由于 B 中的主机全部变为
了选举状态,所以无法提供任何服务,没有形成脑裂。

情况四无脑裂

在这里插入图片描述
A、B、C 均可以对外提供服务,不受影响。

情况五无脑裂

在这里插入图片描述
A 机房无法处理写操作请求,但可以对外提供读服务。
B、C 机房由于失去了 Leader,均会发起选举,但由于均无法获取过半支持,所以均无
法选举出新的 Leader。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值