Appearance
分布式事务理论基础
1. CAP 定理
CAP 定理(也称为 Brewer 定理),描述了分布式系统中三个核心属性的权衡取舍:
一致性(Consistency):所有节点在同一时间看到相同的数据。即每次读操作都能获取到最近的写操作结果(强一致性);
可用性(Availability):系统在任何时候都能响应请求,即使部分节点故障,也不会拒绝服务;
分区容忍性(Partition Tolerance):系统在网络分区(即节点间通信中断)发生时,仍能继续运行。
CAP 定理的核心结论是:在分布式系统中,这三个属性不可能同时完全满足,只能满足其中两个(即 CP、AP 或 CA 系统)。例如:
CP 系统:优先一致性和分区容忍性,牺牲可用性。在网络分区时,可能拒绝部分请求以确保数据一致(如传统关系型数据库在分布式模式下);
AP 系统:优先可用性和分区容忍性,牺牲一致性。允许临时不一致,但最终会收敛(如 NoSQL 数据库 Cassandra);
CA 系统:优先一致性和可用性,但不考虑分区容忍性。这在实际分布式环境中很少见,因为网络分区不可避免,通常退化为单机系统。
CAP 定理强调了分布式设计的权衡:在网络不可靠的世界中,分区容忍性是必须的,因此实际系统往往在 C 和 A 之间选择。
2. BASE 理论
BASE 理论是针对分布式系统的一种设计原则。BASE 是以下词组的缩写:
Basically Available(基本可用):系统保证基本可用,即使在故障时,也允许部分功能降级或延迟响应,而不是完全不可用;
Soft State(软状态):系统状态允许在一段时间内不一致,不要求实时强一致性;
Eventual Consistency(最终一致性):系统保证数据最终会达到一致状态,但不保证立即一致。通过异步复制、补偿机制等实现。
BASE 理论适用于大规模分布式系统,强调高可用性和灵活性,而不是严格的事务一致性。它与 CAP 定理中的 AP 系统相呼应,适用于场景如电商、社交网络等,其中短暂不一致是可以接受的(如用户余额显示延迟更新,但最终正确)。
3. CAP 与 BASE 的关系
CAP 定理是分布式系统的理论基础,解释了为什么无法同时实现强一致性和高可用性。BASE 理论则是实践指导,提供了一种在 AP 系统中的设计范式,帮助开发者构建容忍不一致的系统。
4. 分布式事务模型
解决分布式事务,各个子系统之间必须能感知到彼此的事务状态,才能保证状态一致,因此需要一个事务协调者来协调每一个事务的参与者(子系统事务)。
这里的子系统事务,称为分支事务,有关联的各个分支事务在一起称为全局事务。