1、事务四大特性
原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)
2、事务分类
本地事务、分布式事务
3、分布式事务协议
2PC,3PC(实现难度比较大)
4、分布式事务四种模式
AT
AT模式的一阶段、二阶段提交和回滚均由Seata框架自动生成,用户字只需要编写业务SQL,便能轻松接入分布式事务,AT模式是一种对业务无任何侵入的分布式解决方案
TCC
TCC模式需要用户根据自己的业务场景实现Try,Confirm和Cancel三个操作,事务发起方在一阶段执行Try方式,在二阶段提交执行Confirm方法,二阶段回滚执行Cancel方法
Saga
Saga 模式适用于业务流程长且需要保证事务最终一致性的业务系统,Saga 模式一阶段就会提交本地事务,无锁、长流程情况下可以保证性能。
XA
XA是X/Open DTP组织(X/Open DTP group)定义的两阶段提交协议,XA被许多数据库(如Oracle、DB2、SQL Server、MySQL)和中间件等工具(如CICS 和 Tuxedo)本地支持 。
X/Open DTP模型(1994)包括应用程序(AP)、事务管理器(TM)、资源管理器(RM)。
TCC和Saga的区别
对于TCC,「一阶段」会将资源进行预占,对资源进行锁定,「二阶段」才会使用资源或释放资源。
对于Saga,则是「一阶段」直接进行事务提交。相比TCC的二阶段提交事务,一阶段提交事务「无锁」,且可以采用「事件驱动异步执行」,适合「长流程」的业务,另外异步执行也意味着更高的「吞吐量」。