分布式一致性协议Raft-案例剖析

前言

这是Raft系列文章的第二篇。在上一篇《认识Raft》 中我们成功论证了Raft保证集群数据一致性的问题。然而现实世界是非常复杂的,任何情况都可能发生。那么对于各种异常场景Raft集群究竟如何应对的呢?

本篇会列举几个经典的Case来解释Raft的应对措施。如果没看过上一篇《认识Raft》 文章的同学可以先看一下,这篇相当于上篇的加强补充篇。

案例剖析

场景一-选票瓜分

上一篇我们知道,Leader为了巩固自己的领导地位,会定期向Follower发送心跳。假设集群中有4个节点,当Leader挂掉的时候,如果Follower有多个都出现心跳超时,这时集群会出现多个Candidate进行选举。多个Candidate同时选举
上图展示节点B和节点C同时成为Candidate,并且分别向其他三个节点发送投票请求(绿色小球表示投票请求)。因为B和C首先都会投给自己一票,要想成为Leader,还需要至少两个节点投票给自己形成多数派。Raft规定:每个节点对同一个Term最多投一票。 此时B和C都处于Term 4,而A和D处于Term 3,因此B

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值