分布式事务       

分布式事务

一致性方案

  1. 两阶段提交(2PC, Two-phase Commit)方案 强一致性

增加一个角色协调者

阶段一:协调者向参与者提交事物请求,并询问执行结果

阶段二:执行事务提交

二阶段提交协议,不是一个高效的协议,会带来性能上的损失

  1. 3pc三阶段提交

paxos

eBay 事件队列方案 最终一致性

  1. TCC 补偿模式 最终一致性

缓存数据 最终一致性

  1. MQ消息队列

一致性理论

cap理论

一致性(Consistency)

可用性(Availability)

分区容忍性(Partition Tolerance)

BASE 理论

基本可用(Basically Available):指分布式系统在出现故障时,允许损失部分的可用性来保证核心可用。

软状态(SoftState):指允许分布式系统存在中间状态,该中间状态不会影响到系统的整体可用性。

最终一致性(EventualConsistency):指分布式系统中的所有副本数据经过一定时间后,最终能够达到一致的状态。

PostgreSQL针对ACID的实现技术如下

ACID 实现技术 原子性(Atomicity) MVCC 一致性(Consistency) 约束(主键、外键等) 隔离性 MVCC 持久性 WAL

分布式ACID 实现技术 原子性(Atomicity) MVCC + 两阶段提交 一致性(Consistency) 约束(主键、外键等) 隔离性 MVCC 持久性 WAL

框架

一个好的分布式事务框架应用尽可能满足以下特性: 1. 业务改造成本低 2. 性能损耗低 3. 隔离性保证完整 但如同CAP,这三个特性是相互制衡的,往往只能满足其中两个,我们可以画一个三角约束

基于业务补偿的Saga满足1.2;TCC满足2.3;Seata满足1.3。