⚖️ CAP 与一致性理论
CAP 定理与 BASE 理论;强一致性 vs 最终一致性;Raft/Paxos 共识算法;分布式系统的时钟问题(向量时钟、Lamport 时钟)。
第1阶段 理论基础 → CAP、BASE、共识算法第2阶段 分布式事务 → 2PC、TCC、Saga第3阶段 服务发现 → 注册中心、AP/CP第4阶段 熔断限流 → 限流算法、熔断器 分布式系统 │ ┌───────────┬───────────┼───────────┐ ▼ ▼ ▼ ▼ CAP/BASE 分布式事务 服务发现 熔断限流 │ │ │ │• CAP理论 • 2PC • Nacos • 令牌桶• BASE理论 • TCC • Eureka • 漏桶• Raft • Saga • Consul • 熔断器• Paxos • Seata • 健康检查 • 隔离| 专题 | 考察频率 | 难度 | 核心能力 |
|---|---|---|---|
| CAP/BASE | ★★★★☆ | 高 | 理论理解 |
| 分布式事务 | ★★★★★ | 高 | 方案设计 |
| 服务发现 | ★★★★☆ | 中 | 架构选型 |
| 熔断限流 | ★★★★★ | 中 | 流量控制 |
⚖️ CAP 与一致性理论
CAP 定理与 BASE 理论;强一致性 vs 最终一致性;Raft/Paxos 共识算法;分布式系统的时钟问题(向量时钟、Lamport 时钟)。
💳 分布式事务
2PC/3PC 协议;TCC(Try-Confirm-Cancel);Saga 模式;本地消息表;消息队列最终一致性;Seata 框架原理。
🔍 服务注册与发现
Eureka vs Nacos vs Consul;CP vs AP 的选择;心跳机制与健康检查;服务端发现 vs 客户端发现;DNS 轮询 vs 注册中心。
🛡️ 熔断、限流与降级
Hystrix vs Sentinel;令牌桶 vs 漏桶限流算法;熔断器状态机(CLOSED/OPEN/HALF-OPEN);服务降级策略;bulkhead(舱壁)隔离。
| 专题 | 初级 | 中级 | 高级 | 代表问题 |
|---|---|---|---|---|
| CAP/一致性 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | CAP 三者能同时满足吗?Raft 如何保证数据一致? |
| 分布式事务 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | TCC 和 Saga 的区别?如何保证消息不丢失不重复? |
| 服务发现 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Nacos 和 Eureka 的区别?为什么选 AP 或 CP? |
| 熔断限流 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 令牌桶和漏桶算法有什么区别?熔断器的状态机是怎样的? |
单机系统 → 分布式系统,面临全新问题:
1. 网络不可靠 • 消息可能延迟、丢失、重复、乱序 • 无法区分"对方崩溃"和"网络分区"
2. 时钟不同步 • 不同机器的时钟有漂移,无法用时间戳判断事件先后 • 需要逻辑时钟(Lamport/向量时钟)或全局时序服务(TrueTime)
3. 部分失败(Partial Failure) • 单机要么全部正常,要么宕机 • 分布式中某些节点失败,其他节点继续运行,需要处理各种中间状态
4. 一致性与性能的权衡 • 强一致性代价:同步等待多数派确认,增加延迟 • 弱一致性代价:用户可能看到不同版本的数据
这些挑战催生了 CAP 定理、共识算法、分布式事务等一系列理论和工程实践。第1天 CAP 定理与 BASE 理论 → 理解 P 是必然的,CP vs AP 的选择场景第2天 Raft 共识算法 → 理解 Leader 选举和日志复制,是 Etcd/TiDB 的基础第3天 分布式事务方案 → 2PC 的问题是什么,TCC 和 Saga 如何解决第4天 消息队列最终一致性 → 本地消息表 + 消息队列是生产最常用的方案第5天 熔断限流 → 令牌桶/漏桶算法手写,熔断器状态机画出来