5.5 Raft

容错共识

1. 知识点论述
「5.5 Raft」是《分布式计算系统》容错共识部分的核心知识点。回答故障后如何继续服务,以及如何在多数派下达成一致。本知识点首先把握:状态:Follower、Candidate、Leader。学习时请把它放回整门课主线——把独立计算机组织成对用户像一台机器的系统,并用通信、数据放置、复制、容错与调度把这件事做可靠。
2. 视频教程

动画:Raft 选举、脑裂、日志复制与安全性

3. 知识点详解

下面围绕本知识点展开要点说明,建议结合上方视频边看边对照。

  1. 状态:Follower、Candidate、Leader。
  2. 选举:Follower 超时后成为 Candidate,任期加一,发 RequestVote。获得多数票成为 Leader。
  3. 投票时还要比较日志新旧,避免日志落后的节点当选。
  4. 日志复制:Leader 追加日志,复制到多数后提交,再应用到状态机。
  5. 安全性:已提交日志不能在新 Leader 上丢失,任期单调递增。
学习建议:先抓住定义与问题,再理解机制步骤,最后对照应用场景思考“何时用、何时不用、代价是什么”。
4. 应用场景
  • Etcd、Consul、TiKV 等基于 Raft。
  • 选主与日志复制保证已提交数据不丢。
  • 用 Raft 为 2PC 协调者做高可用。