XA事务模式支持

发布时间 2024-01-05 13:42:56作者: 周仙僧

运行机制

  • 执行阶段(借助于数据库的XA协议,执行阶段通过预执行将数据持久化,但分支事务没做提交):
    • 可回滚:业务 SQL 操作放在 XA 分支中进行,由资源对 XA 协议的支持来保证 可回滚
    • 持久化:XA 分支完成后,执行 XA prepare,同样,由资源对 XA 协议的支持来保证 持久化(即,之后任何意外都不会造成无法回滚的情况)
  • 完成阶段:
    • 分支提交:执行 XA 分支的 commit
    • 分支回滚:执行 XA 分支的 rollback

图例

集成过程

参考Seata客户端集成
客户端应用的application.yml文件添加开启XA模式的配置

seata:
  data-source-proxy-mode: XA

特征

  • 优点:分支事务不需要提前提交,执行效率高,使用便捷,数据强一致性。
  • 缺点:弱可用,当事务分支出现异常无法正常回滚,不能进行重试。

参考文献

Seata XA模式使用