RAFT分布式共识机制
系统机制
Raft 是一个管理 replicated log 的算法
Raft 实现共识的机制
- 领导者选举(Leader Election):共同选举出一个 Leader
- 日志复制(Log Replication):给予这个 Leader 管理 replicated log 的完全职责
- 安全(Safety):Leader 接受来自客户端的 log entries,然后复制给其他节点, 并在安全(不会导致冲突)时,告诉这些节点将这些 entries 应用到它们各自的状态机
只有一个 Leader 的设计简化了 replicated log 的管理。例如,
- Leader 能决定将新的 entry 放到 log 中的什么位置,而不用询问Follower
- 仅存在Leader->Follower的单向数据流
Leader 可能会挂掉(fail)或从集群中失联(disconnected),这种情况下会选举一个新 Leader