加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 建站 > 正文

图解分布式一致性算法

发布时间:2019-10-16 11:27:44 所属栏目:建站 来源:侯树成
导读:副标题#e# 今天的文章,咱们会通过图的方式,来深入学习和理解分布式一致性的实现原理。 开始的时候,咱们先来灵魂一问:什么是分布式一致性? 你的应用是单节点吗? 你的系统用户多吗、支持扩容吗? 你的系统扩容后数据能保持一致吗? 你的系统是否使用Raft、P

这个选举周期会一直持续直到某个 follower 停止心跳消息接收变成 candidate。

分布式一致性算法

我们停掉 leader 再来看一下重新选举的情况。

此时 节点 B 已经停止,所以 节点A 和节点C 都收不到心跳消息。咱们前面说收不到心跳消息的话,节点的状态会从 Follower 变成 Candidate,所以A 和C 在各自的选举超时时间设置内会改变状态,

图解分布式一致性算法

此时,节点 A 和 节点 C 都在等待,由于节点C先超时,所以会先开始一轮选举。和上面的选举过程一样,会先新增Term,给自己投一票,并发送投票请求给其他节点。

在收到节点A的投票后,节点C现在升级为 term 2的 leader。

分布式一致性算法

咱们前面总在说的「大多数节点投票」(a majority of votes)。这个能保证能在一个投票周期内,只会产生一个 leader。

假设两个节点同时从 Follower 状态变成了 Candidate,这个时候两者都会升级 Term,并请求其他节点不给自己投票。

分布式一致性算法

分布式一致性算法

这个时候两者的 Term 其实是相同的,在同一个 Term 内 其他节点只会投出一票,所以每个 Candidate 都只会收到一个节点的投票。

分布式一致性算法

分布式一致性算法

因为没有超过「大多数」,所以都会不能成为 leader。这些节点就会等待新一轮的选举,此时节点D先开始发起投票,并收到了大多数的投票,所以在Term 5 最终成为 leader。

分布式一致性算法

四、 Log Replication

在选举出一个leader之后,就需要复制所有的变更信息到系统里的所有节点。这些是通过和心跳检测相同的的Append Entries message 来完成的。

分布式一致性算法

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读