分布式系统与高并发:概览
Published: Sun Feb 15 2026 | Modified: Sat Feb 07 2026 , 1 minutes reading.
分布式系统与高并发:概览
引言:“多大脑”问题
在单机世界中,CPU 掌控一切。但在 分布式系统 中,你有成百上千个“大脑”(服务器)必须协同工作。
- 如果网络断开,服务器 A 无法与服务器 B 通信怎么办?
- 如果 1 万个用户在同一毫秒内抢购最后一部 iPhone 怎么办?
本章涵盖了让互联网在面对故障时依然能可靠运行的算法。
典型业务场景
- 金融交易: 确保在两个不同数据库分片之间转账时,钱既不会凭空产生也不会丢失 (2PC, Paxos)。
- 云原生协作: 确保集群中的所有节点都对“谁是领导者”达成一致 (Raft)。
- API 保护: 防止单个用户用 100 万个请求压垮你的系统 (限流)。
- 系统稳定性: 当某个微服务出现故障时自动切断流量,防止引发全线崩溃 (熔断)。
核心概念:CAP 定理
你无法同时拥有以下三者:
- 一致性 (Consistency): 所有节点在同一时间看到相同的数据。
- 可用性 (Availability): 每个请求都能收到响应(即使是旧数据)。
- 分区容错性 (Partition Tolerance): 即使网络出现故障,系统仍能继续工作。
现实情况: 在云端,网络故障 (P) 是不可避免的。你必须在 一致性 (Raft/Paxos) 和 可用性 (Gossip/最终一致性) 之间做出选择。
常见算法速览
- 5.1 Raft: 被 etcd 和 Kubernetes 采用的“易于理解”的一致性算法。
- 5.3 2PC (二阶段提交): 处理跨数据库原子事务的经典方法。
- 5.5 限流算法: 用于流量控制的令牌桶 (Token Bucket) 和漏桶 (Leaky Bucket) 算法。
- 5.6 熔断器: 微服务架构中的“安全保险丝”。
- 5.8 向量时钟 (Vector Clocks): 在没有全局时钟的情况下追蹤事件的先後順序。
选型对比速查
| 需求 | 推荐算法 / 模式 | 目标 |
|---|---|---|
| 集群选主 | Raft | 强一致性与高容错。 |
| 分布式事务 | 2PC / TCC | 跨多个服务的原子性。 |
| 负载均衡 | 加权轮询 (WRR) | 均匀分配流量。 |
| 防攻击 / 防突发流量 | 令牌桶 | 平滑流量峰值。 |
| 数据同步 | Gossip 协议 | 高可用性与最终一致性。 |
一句话心法
“分布式算法将由易故障机器组成的混乱网络,转化为一台单一、可靠的虛擬計算機。”
