1. 分布式事务基础:ACID理论、CAP定理、BASE理论、分布式事务核心挑战
1.1 ACID 理论:单机事务的黄金标准
ACID 是数据库事务正确执行的四个基本要素的缩写,由 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation) 和 持久性(Durability) 组成。在单机关系型数据库中,ACID 保证了事务的可靠执行。
| 特性 | 定义 | 典型实现 |
|---|---|---|
| 原子性 | 事务中的所有操作要么全部成功,要么全部失败回滚,不存在中间状态。 | Undo Log / Redo Log |
| 一致性 | 事务执行前后,数据库必须从一个一致性状态转换到另一个一致性状态。 | 约束检查、触发器 |
| 隔离性 | 并发执行的事务之间互不干扰,每个事务都感觉不到其他事务的存在。 | MVCC、锁机制 |
| 持久性 | 一旦事务提交,其结果就是永久性的,即使系统崩溃也不会丢失。 | WAL(Write-Ahead Logging) |
压测视角: 在分布式事务压测中,ACID 是衡量事务正确性的基准。如果压测过程中出现数据不一致或部分提交,说明分布式事务协调机制存在故障。
1.2 CAP 定理:分布式系统的“不可能三角”
CAP 定理由 Eric Brewer 在 2000 年提出,指出分布式系统最多只能同时满足以下三个特性中的两个:
- C(Consistency,一致性):所有节点在同一时刻看到的数据是一致的。
- A(Availability,可用性):每个请求都能获得一个非错误的响应,但不保证响应包含最新数据。
- P(Partition Tolerance,分区容错性):系统在遇到网络分区(节点间通信中断)时仍能正常运行。
核心权衡: 在分布式系统中,网络分区是不可避免的,因此 P 是必选项。实际设计时需要在 CP(强一致)和 AP(高可用)之间做出选择。
1.3 BASE 理论:分布式事务的实践妥协
BASE 理论是 CAP 定理在工程实践中的延伸,它放弃了强一致性,追求最终一致性,是构建大规模分布式系统的理论基础。
| 要素 | 含义 | 与 ACID 对比 |
|---|---|---|
| BA(Basically Available) | 基本可用:系统允许出现部分功能降级,但核心功能保持可用。 | 弱化可用性要求 |
| S(Soft State) | 软状态:允许系统存在中间状态,不要求时刻一致。 | 弱化一致性要求 |
| E(Eventually Consistent) | 最终一致性:经过一段时间后,所有副本最终会达到一致状态。 | 弱化持久性要求 |
压测陷阱: 在 BASE 理论指导下设计的分布式事务,压测时可能出现短暂的数据不一致。故障定位时需要区分“预期内的最终不一致”和“真正的故障”。
1.4 分布式事务核心挑战
在分布式系统中实现事务,面临以下四大核心挑战:
- 网络不确定性:网络延迟、丢包、分区导致节点间通信不可靠,事务协调者无法准确判断参与者状态。
- 节点故障:任意节点可能随时宕机,事务协调者需要具备故障恢复和超时处理能力。
- 数据一致性:多个节点上的数据副本需要保持同步,任何写入失败都可能导致全局不一致。
- 性能开销:分布式事务的协调、日志、锁机制会引入额外的网络开销和延迟,影响系统吞吐量。
1.5 分布式事务与 gRPC 的关联
gRPC 作为高性能 RPC 框架,在分布式事务中扮演着 通信载体 的角色。其核心特性与分布式事务的挑战直接相关:
- 双向流:支持事务协调者与参与者之间的实时状态交换。
- 超时与重试:应对网络不确定性,实现事务超时回滚。
- 拦截器:可在 RPC 调用链中注入事务上下文(如 XID 传播)。
- 负载均衡:影响事务参与者的分布和故障转移策略。