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,分区容错性): 系统在出现网络分区时仍能正常运行。
CAP 理论三角模型 一致性 可用性 分区容错 CA CP AP 实际分布式系统必须选择 CP 或 AP,因为网络分区(P)是必然发生的
实践选择: 大多数互联网业务优先选择 AP(可用性 + 分区容错),通过最终一致性补偿;金融、库存等强一致性场景选择 CP(一致性 + 分区容错),牺牲部分可用性。

1.4 BASE 理论

BASE 理论是 CAP 理论在 AP 方向的延伸,由 eBay 架构师 Dan Pritchett 提出,核心思想是放弃强一致性,采用最终一致性来获得高可用性。

缩写 全称 含义 实现方式
BA Basically Available 基本可用:系统允许部分功能降级,但核心功能可用 流量削峰、服务降级、限流熔断
S Soft State 软状态:允许数据中间状态存在,不要求实时一致 异步复制、状态缓存、延迟校验
E Eventually Consistent 最终一致性:经过一定时间后,所有副本数据最终一致 补偿事务、重试机制、版本向量
BASE 理论:从强一致到最终一致 强一致 软状态 最终一致 BASE 事务处理流程 1. 业务操作直接提交,不等待所有节点确认 2. 后台异步补偿任务检测不一致并修复 3. 最终所有副本达到一致状态

1.5 CAP 与 BASE 的关系

  • CAP 是约束条件: 指出分布式系统必须在 C、A、P 三者中取舍,P 是必选项。
  • BASE 是实践路径: 在 AP 选择下,通过软状态和最终一致性来弥补一致性的缺失。
  • 适用场景: 高并发互联网业务(如订单、支付、社交)优先 BASE;金融、账户、库存等强一致场景仍需 CP 方案(如 2PC、Paxos)。
课程关联: 本课程后续的 Saga 事务模式正是 BASE 理论的典型实现——通过补偿操作(Compensating Action)在 AP 系统中达成最终一致性,同时利用鉴权拦截机制精确控制事务边界和错误恢复流程。