文档介绍:微服务-分布式事务
概念澄清
事务补偿机制:在事务链中的任何一个正向事务操作,都必 须存在一个完全符合回滚规则的可逆事务.
CAP 理论:CAP(Consis tency, Ava il ab ility. Par tit ion T微服务-分布式事务
概念澄清
事务补偿机制:在事务链中的任何一个正向事务操作,都必 须存在一个完全符合回滚规则的可逆事务.
CAP 理论:CAP(Consis tency, Ava il ab ility. Par tit ion Tolerance),阐述了一个分布式系统的三个主要方面,只能同时 ,AP系统.
幂等性:简单的说,业务操作支持重试,不会产生不利影 :为消息额外增加唯一 ID.
BASE (Basically avaliable, soft state, eventually consistent):是分布式事务实现的一种理论标准.
刚性事务是指严格遵循ACID原则的事务,例如单机环境下的数据 库事务.
柔性事务是指遵循BASE理论的事务,一般见在分布式环境中,常 见的实现方式有:两阶段提交(2PC), TCC补偿型提交,基于消息 的异步确保型, 最大努力通知型.
一般对本地事务采用刚性事务,分布式事务使用柔性事务.
最佳实践
先上结论,再分别介绍分布式事务的各种实现方式.
如果业务场景需要强一致性, 那么尽量避免将它们放在不同 服务中, 也就是尽量使用本地事务, 避免使用强一致性的分布式 事务.
如果业务场景能够接受最终一致性, 那么最好是使用基于消 息的最终一致性的方案(异步确保型)来解决.
如果业务场景需要强一致性, 而且只能够进行分布式服务部 署,那么最好是使用TCC方案而不是2PC方案来解决.
注意:以下每种方案都有不同的适用场合,需要根据实际业务场 景来选择.
两阶段提交(2PC)
两阶段提交(Two Phase Commit, 2PC),具有强一致性,是CP系 统的一种典型实现.
两阶段提交,常见的标准是XA, 持XA.
示意图
Phrase 1
Commit?
Gommit?
Phrase 2
abort
Cbmmit?
Commit?
abort
图的上半是两阶段提交成功的