简述raft一致性算法

Posted 花白胡子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简述raft一致性算法相关的知识,希望对你有一定的参考价值。


        一致性算法允许一组机器像一个整体一样工作,即使其中的一些机器出了错误也能正常工作。在较大规模的分布式系统中分布式协议/算法,具有举足轻重的地位。最为出名的一致性算法当属Paxos,但是Paxos也以难理解著称,而raft算法易于理解和实现,从而得到广泛应用。

       废话不多说,进入正题。

简述raft一致性算法

      假设系统有三个节点,如何能保持三个节点的动作整齐划一呢?

      raft中节点的角色分为:Follower、Candidate、Leader。

 故事的开始!

故事的第一幕:选举

 第一场:

        三个节点都是Follower。

        既然没有是领导(Leader),那么就开始选举吧。必须定下来:究竟谁说了算了。

第二场:

        没有发现Leader的Follower,自己参入选举,变成Candidate。向其他节点发起投票:选我做领导(Leader)的人,请举手。

简述raft一致性算法

第三场:

       如果大多数节点都同意了投票,那么Candidate就摇身一变成了      Leader。

故事的第二幕:领导

第一场:动作整齐划一,听从领导统一安排

        当Leader接受到命令后,先将命令保持在其日志中保存。

              简述raft一致性算法

绿色节点为集群的使用者

 

 第二场:小队长下发命令

        Leader向其他follower广播(复制)命令,

        Follower接受命令,讲命令追加到自己的日志中。

第三场:动作协调

        大多数follower将日志写入磁盘文件后,向Leader回应:准备好了;

        Leader收到大多数follower回应后,再次发布:这个事就这么定了。

       

至此,这个最简单、最本质的部分已经讲完,更深入的其它机制就不啰嗦了。

以上是关于简述raft一致性算法的主要内容,如果未能解决你的问题,请参考以下文章

分布式一致性算法:Raft 算法

分布式一致性算法:Raft 算法(Raft 论文翻译)

基础普及(95):一分钟了解更简单的Raft一致性算法!

Raft 一致性算法

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

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