动态演示Raft分布式一致性协议
Raft作为一种比较好理解的分布式一致性算法(相对于paxos来说,其实要理解还是有点难度的!),是通过选举机制,日志复制来保证发布式系统数据的一致性。
相对于Paxos算法,Raft引入主节点,通过竞选。其中节点类型:
- Follower
- Candidate
- Leader
Leader 会周期性的发送心跳包给 Follower。每个 Follower 都设置了一个随机的竞选超时时间,一般为 150ms~300ms,如果在这个时间内没有收到 Leader 的心跳包,就会变成 Candidate,进入竞选阶段。
1. 无Leader阶段(系统初始阶段)
流程:
① 下图表示一个分布式系统的最初阶段,此时只有 Follower,没有 Leader。Follower A 等待一个随机的竞选超时时间之后,没收到 Leader 发来的心跳包,因此进入竞选阶段。