Skip to content

Latest commit

 

History

History
91 lines (68 loc) · 5.96 KB

File metadata and controls

91 lines (68 loc) · 5.96 KB
title 分布式理论、算法与协议:CAP、BASE、中心化与去中心化、Paxos、Raft 与一致性哈希
description 分布式理论与协议学习路线,涵盖 CAP、BASE、中心化与去中心化、拜占庭将军问题、Paxos、Raft、ZAB、Gossip、一致性哈希等内容,理解一致性、容错、共识、状态传播和数据分布问题。
category 分布式
tag
分布式理论
分布式协议与算法
共识算法
sitemap
changefreq priority
weekly
0.9
head
meta
name content
keywords
分布式理论,分布式算法,分布式协议,中心化,去中心化,CAP,BASE,拜占庭将军问题,Paxos,Raft,ZAB,Gossip,一致性哈希,共识算法,拜占庭容错,BFT,最终一致性,分布式系统面试题

分布式理论、算法与协议是理解分布式系统的基础。学习这部分内容时,不建议只背结论,更重要的是理解不同方案在一致性、可用性、容错、共识、性能和工程复杂度之间的取舍。

适合谁看

  • 想系统理解分布式一致性、共识算法和数据分布的后端开发者。
  • 准备分布式系统、系统设计、后端架构面试的同学。
  • 对 CAP、BASE、Paxos、Raft、ZAB、Gossip 等概念只停留在“背过”的读者。
  • 需要理解 ZooKeeper、Redis Cluster、分布式缓存和服务发现底层机制的工程师。

学习重点

  • CAP 和 BASE 不是口号,它们背后对应哪些真实工程取舍?
  • 中心化和去中心化是在解决什么问题?Leader、多数派和 Gossip 分别适合哪些场景?
  • Paxos、Raft、ZAB 都在解决共识问题,为什么工程复杂度和使用场景不同?
  • Gossip 为什么适合大规模节点传播状态,和强一致协议有什么区别?
  • 一致性哈希如何降低节点扩缩容时的数据迁移成本?
  • 面试中如何用“问题背景 -> 核心思想 -> 流程 -> 优缺点 -> 使用场景”讲清一个协议?

这组文章怎么互补?

CAP 定理与 BASE 理论详解 负责解释分布式系统里“一致性、可用性、分区容错”这组取舍。分布式协调详解 继续往工程场景里推进,讨论谁来做决定、旧 Leader 为什么会造成问题、什么时候应该用 Gossip。

Paxos、Raft、ZAB 是共识协议线。建议先读 Raft 算法详解,再读 Paxos 算法详解ZAB 协议详解。Raft 更适合入门,Paxos 更接近经典理论,ZAB 则对应 ZooKeeper 的原子广播和崩溃恢复。

Gossip 协议详解一致性哈希算法详解 不负责强一致写入顺序,它们分别解决状态传播和数据映射问题。把这两篇放在共识协议之后看,可以避免把“传播状态”和“达成共识”混在一起。

建议阅读顺序

  1. CAP 定理与 BASE 理论详解:先建立一致性、可用性、分区容错的取舍视角。
  2. 分布式协调详解:把 Leader、Quorum、脑裂、Lease、Fencing Token 和 Gossip 放到同一条主线里。
  3. 拜占庭将军问题详解:理解恶意节点、矛盾消息、3m + 1 节点要求和 BFT 容错边界。
  4. Raft 算法详解:用相对易懂的 Leader 选举和日志复制入门共识算法。
  5. Paxos 算法详解:理解经典共识算法的角色、阶段和难点。
  6. ZAB 协议详解:把共识算法落到 ZooKeeper 的消息广播和崩溃恢复场景。
  7. Gossip 协议详解一致性哈希算法详解:理解大规模系统里的状态传播和数据分布。

核心文章

一致性与分布式理论

  • CAP 定理与 BASE 理论详解:理解一致性、可用性、分区容错的取舍,以及 BASE 理论和最终一致性的工程含义。
  • 分布式协调详解:理解分布式系统为什么需要协调,以及 Leader/Quorum、Gossip、Lease 和 Fencing Token 如何分别处理协调问题。
  • 拜占庭将军问题详解:理解存在恶意节点或异常节点时,正常节点如何对同一个结果达成一致。

共识算法

  • Paxos 算法详解:理解 Proposer、Acceptor、Learner 角色、两阶段流程和 Multi-Paxos 优化。
  • Raft 算法详解:理解 Leader 选举、日志复制、安全性约束、成员变更和与 Paxos 的差异。
  • ZAB 协议详解:理解 ZooKeeper Atomic Broadcast、消息广播、崩溃恢复、ZXID 和事务日志。

数据传播与数据分布

高频问题

  • CAP 中的 C、A、P 分别指什么?为什么分区容错通常不能舍弃?
  • BASE 理论和最终一致性解决了什么问题?
  • 中心化设计和去中心化设计的区别是什么?为什么有 Leader 也不一定是单点?
  • Paxos 为什么难理解?Basic Paxos 和 Multi-Paxos 有什么区别?
  • Raft 为什么更容易工程实现?Leader 选举和日志复制如何保证安全性?
  • ZAB 和 Raft 有哪些相似点和差异?
  • Gossip 协议适合哪些场景?为什么它通常不提供强一致?
  • 一致性哈希为什么需要虚拟节点?

相关专题