分布式理论、算法与协议:CAP、BASE、Paxos、Raft、ZAB、Gossip 与一致性哈希
约 979 字大约 3 分钟
分布式理论、算法与协议是理解分布式系统的基础。学习这部分内容时,不建议只背结论,更重要的是理解不同方案在一致性、可用性、容错、性能和工程复杂度之间的取舍。
适合谁看
- 想系统理解分布式一致性、共识算法和数据分布的后端开发者。
- 准备分布式系统、系统设计、后端架构面试的同学。
- 对 CAP、BASE、Paxos、Raft、ZAB、Gossip 等概念只停留在“背过”的读者。
- 需要理解 ZooKeeper、Redis Cluster、分布式缓存和服务发现底层机制的工程师。
学习重点
- CAP 和 BASE 不是口号,它们背后对应哪些真实工程取舍?
- Paxos、Raft、ZAB 都在解决共识问题,为什么工程复杂度和使用场景不同?
- Gossip 为什么适合大规模节点传播状态,和强一致协议有什么区别?
- 一致性哈希如何降低节点扩缩容时的数据迁移成本?
- 面试中如何用“问题背景 -> 核心思想 -> 流程 -> 优缺点 -> 使用场景”讲清一个协议?
建议阅读顺序
- CAP 定理与 BASE 理论详解:先建立一致性、可用性、分区容错的取舍视角。
- Raft 算法详解:用相对易懂的 Leader 选举和日志复制入门共识算法。
- Paxos 算法详解:理解经典共识算法的角色、阶段和难点。
- ZAB 协议详解:把共识算法落到 ZooKeeper 的消息广播和崩溃恢复场景。
- Gossip 协议详解 和 一致性哈希算法详解:理解大规模系统里的状态传播和数据分布。
核心文章
一致性与分布式理论
- CAP 定理与 BASE 理论详解:理解一致性、可用性、分区容错的取舍,以及 BASE 理论和最终一致性的工程含义。
共识算法
- Paxos 算法详解:理解 Proposer、Acceptor、Learner 角色、两阶段流程和 Multi-Paxos 优化。
- Raft 算法详解:理解 Leader 选举、日志复制、安全性约束、成员变更和与 Paxos 的差异。
- ZAB 协议详解:理解 ZooKeeper Atomic Broadcast、消息广播、崩溃恢复、ZXID 和事务日志。
数据传播与数据分布
- Gossip 协议详解:理解反熵、谣言传播、Push/Pull 模式、SWIM 协议和最终一致性。
- 一致性哈希算法详解:理解哈希环、虚拟节点、节点扩缩容、数据倾斜和分布式缓存应用。
高频问题
- CAP 中的 C、A、P 分别指什么?为什么分区容错通常不能舍弃?
- BASE 理论和最终一致性解决了什么问题?
- Paxos 为什么难理解?Basic Paxos 和 Multi-Paxos 有什么区别?
- Raft 为什么更容易工程实现?Leader 选举和日志复制如何保证安全性?
- ZAB 和 Raft 有哪些相似点和差异?
- Gossip 协议适合哪些场景?为什么它通常不提供强一致?
- 一致性哈希为什么需要虚拟节点?
