概述
一个分布式的全局事务,整体是两阶段提交的模型。全局事务是由若干分支事务组成的,分支事务要满足两阶段提交的模型要求,即需要每个分支事务都具备自己的:、、
- 一阶段prepare行为
- 二阶段commit或rollback行为
根据两阶段行为模式的不同,我们将分支事务划分为Automatic(Branch)Transaction Mode和TCC(Branch)Transaction Mode。
AT模式基于支持本地ACID事务的关系型数据库:
- 一阶段prepare行为:在本地事务中,一并提交业务数据更新和相应回滚日志记录;
- 二阶段commit行为:马上成功结束,自动异步批量清理回滚日志;
- 二阶段rollback行为:通过回滚日志,自动生成补偿操作,完成数据回滚。
相应的,TCC模式,不依赖于底层数据资源的事务支持:
- 一阶段prepare行为:调用自定义的prepare逻辑;
- 二阶段commit行为:调用自定义的commit逻辑;
- 二阶段rollback行为:调用自定义的rollback逻辑。
所谓的TCC模式,是指支持把自定义的分支事务纳入到全局事务的管理中心。