1. 分布式事务概述
分布式事务是跨越多个独立数据库、服务或消息队列的原子操作集合。在单体架构中,事务由单一数据库的本地锁和日志保证;在分布式环境下,事务参与者分布在不同的进程、机器甚至数据中心,传统的本地事务机制不再适用。
1.1 分布式事务的定义
分布式事务(Distributed Transaction)是指事务的参与者、资源管理器、事务管理器分别位于分布式系统的不同节点上,通过全局协调机制保证所有参与节点要么全部提交(Commit),要么全部回滚(Rollback)。
核心特征: 分布式事务 = 全局事务ID + 多节点协调 + 统一提交/回滚协议
1.2 ACID 特性在分布式环境下的挑战
| ACID 特性 | 单体数据库实现 | 分布式环境挑战 |
|---|---|---|
| 原子性(Atomicity) | 本地 undo/redo 日志,单点回滚 | 跨节点部分提交后节点宕机,无法统一回滚 |
| 一致性(Consistency) | 数据库约束 + 本地事务隔离 | 网络分区导致中间状态可见,数据校验跨节点延迟 |
| 隔离性(Isolation) | 行锁/表锁 + MVCC | 全局锁代价过高,分布式 MVCC 实现复杂 |
| 持久性(Durability) | 本地磁盘 WAL 日志 | 节点磁盘故障、网络丢包导致提交确认丢失 |
关键矛盾: 分布式环境下,网络延迟和节点故障是常态。严格保证 ACID 会导致系统可用性急剧下降,因此需要引入新的理论来指导设计。
1.3 CAP 理论
CAP 理论由 Eric Brewer 在 2000 年提出,指出分布式系统最多只能同时满足以下三个特性中的两个:
- C(Consistency,一致性): 所有节点在同一时刻看到相同的数据。
- A(Availability,可用性): 每个请求都能获得非错误的响应,但不保证数据是最新的。
- P(Partition Tolerance,分区容错性): 系统在出现网络分区时仍能正常运行。
实践选择: 大多数互联网业务优先选择 AP(可用性 + 分区容错),通过最终一致性补偿;金融、库存等强一致性场景选择 CP(一致性 + 分区容错),牺牲部分可用性。
1.4 BASE 理论
BASE 理论是 CAP 理论在 AP 方向的延伸,由 eBay 架构师 Dan Pritchett 提出,核心思想是放弃强一致性,采用最终一致性来获得高可用性。
| 缩写 | 全称 | 含义 | 实现方式 |
|---|---|---|---|
| BA | Basically Available | 基本可用:系统允许部分功能降级,但核心功能可用 | 流量削峰、服务降级、限流熔断 |
| S | Soft State | 软状态:允许数据中间状态存在,不要求实时一致 | 异步复制、状态缓存、延迟校验 |
| E | Eventually Consistent | 最终一致性:经过一定时间后,所有副本数据最终一致 | 补偿事务、重试机制、版本向量 |
1.5 CAP 与 BASE 的关系
- CAP 是约束条件: 指出分布式系统必须在 C、A、P 三者中取舍,P 是必选项。
- BASE 是实践路径: 在 AP 选择下,通过软状态和最终一致性来弥补一致性的缺失。
- 适用场景: 高并发互联网业务(如订单、支付、社交)优先 BASE;金融、账户、库存等强一致场景仍需 CP 方案(如 2PC、Paxos)。
课程关联: 本课程后续的 Saga 事务模式正是 BASE 理论的典型实现——通过补偿操作(Compensating Action)在 AP 系统中达成最终一致性,同时利用鉴权拦截机制精确控制事务边界和错误恢复流程。