
文章插图
对于此种情况,Raft 协议的处理流程和上面情况2的处理流程是一样的 。
4. 脑裂
由于网络故障,产生分区将原先的 Leader 节点和 Follower 节点分隔开,Follower 收不到 Leader 的心跳将发起选举,产生新的 Leader,这时就产生了双 Leader,这就是所谓的脑裂 。这种情况下某些 Leader 由于获取不到大多数的投票,所以数据永远不会提交成功 。当网络故障恢复后,旧的 Leader 发现有 Term 更新的 Leader 存在,则自动降级为 Follower 并从最新的 Leader 同步数据达成集群一致 。
总结
本文以 Raft 协议为契机来介绍分布式环境中的一致性 。首先介绍了 Leader 选举和日志同步的过程,然后介绍了 Raft 协议是如何处理各种异常情况的 。通过 Raft 协议的学习,不仅可以对分布式一致性有一个概括性的了解,同时也会有助于对其他一致性协议(比如 paxox)的学习 。在此基础上,可以尝试阅读一些 Raft 开源的实现, 以加深进一步的理解 。
推荐阅读
- 系统管理员入门:排除故障
- Linux系统 tcpdump 抓包命令使用教程
- 产后如何控制体重,推荐四个减肥方法
- 如何对抗衰老,日常做好四件事
- 快手小店怎么找到对应主营类目,如何设置? 快手小店怎么设置商品分类
- sk2的效果 日本的sk2其实效果如何
- 如何在淘宝直播加人 淘宝直播怎样加好友
- 浙江省|上班族如何充实自己,你找对方法了吗?
- 加拿大|加拿大移民详解:如何通过找工作的方式拿到枫叶卡?
- 如何补气血又不上火
