zookeeper脑裂问题

zookeeper存在脑裂问题

        zookeeper可能引发脑裂现象,是指在多机房(网络分区)部署中,若出现网络连接问题,形成多个分区,则可能出现脑裂问题,会导致数据不一致。(严重故障,违反zookeeper实现一致性原则)

多机房部署:即CAP中的P原则,分区容错性;

        如上图,zookeeper经典的三机房部署,每个分区都不超过半数,容灾能力最好的部署方案,现有运行状态中leader在机房A,目前机房A与机房B的通信出现阻断(网络故障),机房B中的follower无法感知leader,机房C与机房A正常通信,C中的follower可以感知A中的leader,那么B中的follower状态会由following改变为looking,停止对外服务开始选举新的leader,并向C发送选举消息,但是C可以感知A的leader所以其中的follower状态为following,C不会接受B发来的选举请求,那么B发起的选举无效,因为没能通过半数以上通过;那么出现了B机房不对外提供服务,A和C依然保持对外提供服务,所以此情况不存在脑裂。

        如上图,情况出现变化,A与B和C的通信都阻断了,只有B和C可以通信,那么B和C就会进入looking状态开始选举新leader,如选出B中的follower为leader,就会出现zookeeper集群中出现双leader;A还会对外提供服务,但是其只能实现读服务,一旦出现写请求,其需要投票然投票数无法过半,所有无法完成写服务;B和C又形成了一个集群,对外提供读写服务;此状况就是脑裂问题,会造成数据不一致,如果有写请求进入BC集群并修改了内容,无法和A同步,那么原始的一致就被改变了;

极端情况:

脑裂问题出现后,即便网络恢复,集群也无法自我恢复,需要人工重启解决现有状态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值