资料

论文: In Search of an Understandable Consensus Algorithm

翻译: Raft论文翻译

算法演示图: thesecretlivesofdata.com/raft

Raft一致性算法

https://www.bilibili.com/video/BV1stu9zKEDh/?spm_id_from=333.337.search-card.all.click&vd_source=3a4f21166dfdb7a0c1391ef1f8da3c6c

实现

对于强一致性共识算法,当前工业生产中,最多使用的就是 Raft 协议,Raft 协议更容易让人理解,并且有很多成熟的工业算法实现,比如蚂蚁金服的 JRaft、Zookeeper 的 ZAB、Consul 的 Raft、百度的 braft、Apache Ratis

paxos以复杂和难以理解著称,通常来说raft是更容易理解的算法,也更容易在工程实践中采用。

  1. braft:百度基于C++实现
  2. Aeron Cluster:基于java实现
  3. etcd/raft:基于Go语言实现

状态

image.png

Raft协议一共包含如下3类角色:

然后在进行选举过程中,还有几个重要的概念: