图解分布式协议-RAFT

Posted 并发编程网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解分布式协议-RAFT相关的知识,希望对你有一定的参考价值。

之前看了下分布式协议RAFT,发现画PPT是理解一个协议比较好的办法,如果喜欢欢迎转发,后续会补充其他协议的PPT。

节点的状态


每个节点有三个状态,他们会在这三个状态之间进行变换。客户端只能从主节点写数据,从节点里读数据。

选主流程

初始是Follwer状态节点,等100-300MS没有收到LEADER节点的心跳就变候选人。

候选人给大家发选票,候选人获得大多数节点的选票就变成了LEADER节点。


图解分布式协议-RAFT

日志复制流程

每次改变数据先记录日志,日志未提交不能改节点的数值。然后LEADER会复制数据给其他follower节点,并等大多数节点写日志成功再提交数据。

图解分布式协议-RAFT


选举超时

每个节点随机等150到300MS,如果时间到了就开始发选票,因为有的节点等的时间短,所以它会先发选票,从而当选成候选人。但是如果两个从节点获得的票一样多,它们之间就要打加时赛,这个时候又会重新随机等150到300MS,然后发选票,直到获得最多票当选候选人。


图解分布式协议-RAFT



心跳超时


每个节点会记录主节点是谁,并且和主节点之间维持一个心跳超时时间,如果没有收到主节点回复,从节点就要重新选举候选人节点

图解分布式协议-RAFT


集群中断

当集群之间的部分节点失去通讯时,主节点的日志不能复制给多个从节点就不能进行提交。

图解分布式协议-RAFT


集群恢复


当集群恢复之后,原来的主节点发现自己不是选票最多的节点,就会变成从节点,并回滚自己的日志,最后主节点会同步日志给从节点,保持主从数据的一致性。

图解分布式协议-RAFT


如果喜欢欢迎转发和赞赏!




以上是关于图解分布式协议-RAFT的主要内容,如果未能解决你的问题,请参考以下文章

分布式共识算法——Gossip协议(图解)

分布式共识算法——Gossip协议(图解)

分布式共识算法——Raft算法(图解)

分布式共识算法——Raft算法(图解)

图解 Raft 共识算法:如何选举领导者?

图解:什么是Raft算法?