5.5 Raft
容错共识
1. 知识点论述
「5.5 Raft」是《分布式计算系统》容错共识部分的核心知识点。回答故障后如何继续服务,以及如何在多数派下达成一致。本知识点首先把握:状态:Follower、Candidate、Leader。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
2. 视频教程
动画:Raft 选举、脑裂、日志复制与安全性
3. 知识点详解
下面围绕本知识点展开要点说明,建议结合上方视频边看边对照。
- 状态:Follower、Candidate、Leader。
- 选举:Follower 超时后成为 Candidate,任期加一,发 RequestVote。获得多数票成为 Leader。
- 投票时还要比较日志新旧,避免日志落后的节点当选。
- 日志复制:Leader 追加日志,复制到多数后提交,再应用到状态机。
- 安全性:已提交日志不能在新 Leader 上丢失,任期单调递增。
学习建议:先抓住定义与问题,再理解机制步骤,最后对照应用场景思考“何时用、何时不用、代价是什么”。
4. 应用场景
- Etcd、Consul、TiKV 等基于 Raft。
- 选主与日志复制保证已提交数据不丢。
- 用 Raft 为 2PC 协调者做高可用。