1. 两阶段提交【XA/JTA,缺点就是长时间阻塞】

XA是数据库支持的技术规范(有相应的语法支持)
JTA 是JDBC Trancation API

  • 一阶段:准备阶段
  • 二阶段:提交阶段

Spring 的分布式事务实现 — 使用和不使用 XA — 第一部分
由xa协议事务管理器统一管理事务提交
XA是2pc两阶段提交
分布式事务 - 图1
jta是spring的,jta来管理atomikos。atomikos管理多个数据源。
分布式事务 - 图2

事务补偿型(TCC事务,保证最终一致性)【两阶段补偿型】

最大努力通知型

分布式事务 - 图3

可靠消息最终一致性【rocketmq?】

image.png

基于seata的分布式事务

seata

xa协议
分布式事务 - 图5
at模式:
image.png

自定义任务表的分布式事务

只是服务之间少了mq,改为直接调用。
image.png

saga模式

感觉和消息队列一样?
image.png