记录分布式系统核心概念的学习笔记,以及在实践中的一些思考。

CAP 定理

分布式系统无法同时满足以下三个特性,只能三选二:

  • 一致性(Consistency):所有节点在同一时间看到相同的数据。
  • 可用性(Availability):每个请求都能收到响应,但不保证数据最新。
  • 分区容错性(Partition tolerance):网络分区发生时系统仍能继续运行。

由于网络分区不可避免,实际系统通常在 CP 和 AP 之间做权衡。

一致性模型

  1. 强一致性:写入完成后,所有读操作都能读到最新值(如 Zookeeper、etcd)。
  2. 最终一致性:经过一段时间后,所有副本收敛到相同状态(如 DNS、对象存储)。
  3. 因果一致性:有因果关系的操作按序可见,无因果关系的操作可以并发。

常见共识算法

算法 特点 典型应用
Raft 易理解,领导者选举 + 日志复制 etcd、TiKV
Paxos 理论完备,工程实现复杂 Chubby、OceanBase
Gossip 去中心化、最终一致 Cassandra、Redis Cluster

实践思考

  • 优先明确业务对一致性的真实需求,避免过度设计。
  • 幂等设计是分布式接口的必修课。
  • 完善的监控与链路追踪是排查分布式问题的前提。

小结

分布式系统的复杂度来源于网络、并发与故障,后续会继续记录 Raft 论文阅读与一致性协议的实践内容。