分布式一致性协议之Raft协议

Raft协议

什么是Raft协议

Paxos论证了一致性协议的可行性,但是不好懂,缺少必要的细节,工程实现难度高。广为人知的实现目前只zk的zab协议。

Paxos的出现为分布式的强一致性提供了很好的理论基础,但是paxos协议本身理解起来困难,实现复杂。

斯坦福大学的RamCloud项目中提出了易理解、易实现的分布式一致性复制协议Raft。C++、Java和Go都有对应的实现,Raft相对简洁。

引入主节点、通过竞选确认主节点。节点;类型:follower、candidate和leader。

leader会周期性的发送心跳包给follower。每个follower设置一个随机的竞选超时时间,一般为150~300ms,如果在这个时间内没有收到心跳包,就会变成candidate。进入竞选阶段,通过竞选阶段投票人多的成为leader。


Terwer...大约 4 分钟后端开发分布式rpcraft