← [ BACK_TO_NOTES ]

Distributed Systems MOC

分布式系统学习入口,从部分失败、复制、一致性、分片、Leader Election 和服务发现,进入 etcd/ZooKeeper 协调、分布式事务、消息与微服务设计。

#moc #growing #backend #architecture

[!info] related notes

Distributed Systems MOC

知识总览

filters:
  and:
    - 'file.ext == "md"'
    - 'file.inFolder("z")'
    - 'this.file.links.contains(file)'
    - 'file.path != this.file.path'
formulas:
  knowledge: 'file.asLink(title)'
properties:
  formula.knowledge:
    displayName: 知识
  note.description:
    displayName: Description
  note.mastery:
    displayName: Mastery
views:
  - type: table
    name: 知识总览
    order:
      - formula.knowledge
      - note.description
      - note.mastery
    columnSize:
      formula.knowledge: 280
      note.description: 760
      note.mastery: 56

[!abstract] 核心认识 分布式系统的难点不是“机器更多”,而是多个节点只有局部视角,通信会延迟、丢失和分区,节点会独立故障。所有复制、选主、锁、消息和事务设计,都在处理这种部分失败与不确定性。

一张图看主干

Partial Failure
→ Replication + Consistency
→ Quorum / Leader / Coordination
→ Sharding / Scale
→ Cross-node Transaction / Messaging
→ Recovery / Observability

推荐阅读顺序

  1. 分布式系统:partial failure 与局部视角。
  2. CAP 定理:网络分区出现时的一致性/可用性取舍。
  3. 数据复制:冗余、读扩展和故障切换。
  4. 一致性模型:客户端允许观察到什么。
  5. 数据分片:容量和吞吐如何水平拆分。
  6. Leader Election:谁有资格推进共享状态。
  7. 服务发现:动态实例如何被找到。
  8. 分布式锁:Lease、Owner、Fencing 与 stale client。
  9. etcd / ZooKeeper:协调系统中的 Revision、Session、Watch 和 Election。
  10. 分布式事务:2PC、Saga、Outbox 与补偿。
  11. 消息投递语义、幂等消费者。

核心关系

Replication 与 Sharding

Replication → 同一份数据有多个副本,主要解决可用性和读扩展
Sharding    → 不同数据分布到不同节点,主要解决容量和吞吐

Consistency 与 Availability

Consistency 不是只有“强/弱”两个按钮。设计前要明确:读旧是否允许、因果关系是否重要、失败时继续服务还是拒绝不确定操作。

Leader、Lease 与 Fencing

Lease 或 Session 过期后,旧节点可能仍在运行。协调系统只撤销“资格”,外部资源还必须通过 epoch / fencing token / version check 拒绝旧 owner。

Transaction 与 Messaging

Business DB transaction
→ Outbox / CDC
→ Kafka / RabbitMQ
→ Idempotent Consumer
→ another DB / Redis / Elasticsearch / external API

Broker 内部事务不能自动覆盖跨数据库和第三方 API 的业务副作用。

抽象概念在真实组件中的映射

概念组件示例
Partition + ReplicationKafka、Elasticsearch、Redis Cluster
Consensus / Leaderetcd Raft、Kafka KRaft、RabbitMQ Quorum Queue
Lease / Session / Watchetcd、ZooKeeper
Event Log / OffsetKafka、Redis Stream
Routed Queue / ACKRabbitMQ
Erasure Coding / QuorumMinIO

学习边界

求职阶段优先解释:

  • partial failure 为什么比普通并发更难;
  • CAP 的适用前提;
  • replication 与 sharding 的区别;
  • linearizable 与 eventual consistency;
  • retry 为什么引入重复,为什么需要幂等;
  • Lease 为什么不等于永久拥有外部资源;
  • Outbox / Saga 为什么比“跨系统强事务”更常见。

Raft / Paxos 的证明和源码实现可以后置,但要理解 quorum、term/epoch、commit 和旧 Leader 隔离的目的。

掌握标准

  • 能推演网络分区时不同节点各自看到什么。
  • 能区分复制、分片、选主、锁和事务的职责。
  • 能解释一个“写成功但响应丢失”的安全处理方式。
  • 能说明消息至少一次投递为何要求业务幂等。
  • 能用真实中间件说明抽象理论,而不是只背 CAP。
创建于 2026/9/4 更新于 2026/9/4
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本