D
AI
学习工作台
8 周后端冲刺2026-05-221 分钟阅读

Raft 与分布式协调

选主、日志复制、ZooKeeper/etcd 应用场景

8周冲刺week7Raft分布式记笔记标记疑惑

共识问题

多节点对 同一序列操作 达成一致。Paxos 难懂;Raft 可理解性优先,面试主流。

Raft 角色

  • Leader:处理写、复制 log
  • Follower:被动接收
  • Candidate:选举中
Term 逻辑时钟,防止旧 leader 捣乱。

安全性

已 commit 的 entry 不会丢(多数派原则)。新 leader 必含所有已提交 log(投票限制)。

与业务

Kafka controller、Redis Sentinel 选主思想类似但实现不同。强一致配置 用 etcd:

服务启动 → 注册 /services/payment/instance-1
配置变更 → Watch 热更新
分布式锁 → lease + compare-and-swap

ZooKeeper vs etcd

ZK ZAB 协议,临时顺序节点做锁;etcd gRPC + Raft,K8s 默认存储。ZK 读多写少;etcd 云原生。

分布式锁注意

fence token 防旧锁持有者写入;锁需 TTL + 续租;Redlock 争议:需理解时钟与 GC 停顿。

与 CAP

Raft 集群 CP:少数派分区不可写,保证一致。

面试

口述一次写请求在 Raft 中的路径;leader 宕机选举时间(election timeout 随机)。week07-microservices-design 讲注册中心用法。

实战巩固与面试表达

本篇属于 8 周冲刺 week07-raft-distributed 主题。复习时先闭卷回答 frontmatter 中三张 flashcard,再展开口述两个「为什么」:为什么这种方案能 work、边界失败时如何降级。与相邻章节对照:算法篇强调复杂度与模板,Go 篇强调工程默认写法,中间件篇强调线上故障案例。

动手与自检清单

用 25 分钟限时做 1 道相关练习题或画出一张架构/数据结构示意图;用 5 分钟写 STAR 片段说明你在项目里是否用过类似技术。记录 3 个面试追问及你的标准答法,存入 /zh/notebook/master-plan 笔记。若某点不熟,回到对应 /chapters 交互 Lab 重新走一遍流程,比死记卡片更有效。

易错点提醒

避免只背名词不会画图;避免只说优点不谈 trade-off(性能、一致性、运维成本至少提一项);避免把学习 Demo 说成百万 QPS 生产。回答时使用「场景 → 方案 → 结果 → 反思」四段式,体现工程成熟度。

补充要点

脑裂靠 term 与 quorum;日志 compaction snapshot 安装。etcd lease 租约续期做锁;watch 推送配置变更。

自检

对比 Raft 与 MySQL 半同步复制;画图 follower 落后合并 log。

知识卡片

问题

Raft 选主大致流程?

点击翻转查看答案

答案

follower 超时未收到心跳变 candidate,term+1 拉票,过半投票成 leader;leader 发 AppendEntries 维持权威。

问题

日志复制如何保证一致?

点击翻转查看答案

答案

客户端写经 leader 追加 log,复制到多数派 commit 后 apply 状态机;follower 冲突按 term/index 回退对齐。

问题

etcd/ZooKeeper 典型用途?

点击翻转查看答案

答案

服务注册发现、配置中心、分布式锁、leader 选举;Watch 机制通知变更。