分布式事务

单数据源的一致性可以使用单机事务来保证,多数据源的一致性需要使用分布式事务来保证。

ACID(A原子性、C一致性、I隔离性、D持久性)是单机事务的特性。

CAP、BASE理论是分布式领域的理论。

XA协议

在XA协议中有两个角色:事务协调者事务参与者

两阶段提交(2PC)

Prepare阶段

Commit阶段

三阶段提交(3PC)

Prepare阶段

Cancommit阶段

Commit阶段

TCC

关于TCC(Try-Confirm-Cancel)的概念,最早是由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。

TCC事务机制相对于传统事务机制(X/Open XA Two-Phase-Commit),其特征在于它不依赖资源管理器(RM)对XA的支持,而是通过对(由业务系统提供的)业务逻辑的调度来实现分布式事务。

对于业务系统中一个特定的业务逻辑S,其对外提供服务时,必须接受一些不确定性,即对业务逻辑执行的一次调用仅是一个临时性操作,调用它的消费方服务M保留了后续的取消权。如果M认为全局事务应该rollback,它会要求取消之前的临时性操作,这将对应S的一个取消操作;而当M认为全局事务应该commit时,它会放弃之前临时性操作的取消权,这对应S的一个确认操作。

每一个初步操作,最终都会被确认或取消。因此,针对一个具体的业务服务,TCC事务机制需要业务系统提供三段业务逻辑:初步操作Try、确认操作Confirm、取消操作Cancel。

MQ

Reference

ByteTCC:https://www.bytesoft.org/tcc-intro/