Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||

分布式系统与高并发:概览

| , 1 minutes reading.

分布式系统与高并发:概览

引言:“多大脑”问题

在单机世界中,CPU 掌控一切。但在 分布式系统 中,你有成百上千个“大脑”(服务器)必须协同工作。

  • 如果网络断开,服务器 A 无法与服务器 B 通信怎么办?
  • 如果 1 万个用户在同一毫秒内抢购最后一部 iPhone 怎么办?

本章涵盖了让互联网在面对故障时依然能可靠运行的算法。

典型业务场景

  • 金融交易: 确保在两个不同数据库分片之间转账时,钱既不会凭空产生也不会丢失 (2PC, Paxos)。
  • 云原生协作: 确保集群中的所有节点都对“谁是领导者”达成一致 (Raft)。
  • API 保护: 防止单个用户用 100 万个请求压垮你的系统 (限流)。
  • 系统稳定性: 当某个微服务出现故障时自动切断流量,防止引发全线崩溃 (熔断)。

核心概念:CAP 定理

你无法同时拥有以下三者:

  1. 一致性 (Consistency): 所有节点在同一时间看到相同的数据。
  2. 可用性 (Availability): 每个请求都能收到响应(即使是旧数据)。
  3. 分区容错性 (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 协议高可用性与最终一致性。

一句话心法

“分布式算法将由易故障机器组成的混乱网络,转化为一台单一、可靠的虛擬計算機。”