SuperAPI AI 工具集

seata-patterns

通用与其它

查看项目

更新于 10-15 21:48

技能介绍

用途:面向 Java 分布式事务场景,帮助在 Seata 的 AT、TCC、SAGA、XA 四种模式间做选择并正确落地。

主要能力:提供四模式选择决策树——需要强一致(金融核心)选 XA;最终一致且事务执行超过 10 秒选 SAGA;高并发且愿意编写 Confirm/Cancel 选 TCC;约 80% 场景默认推荐零侵入的 AT。AT 基于数据源代理,只需 @GlobalTransactional 注解;TCC 自定义 Try/Confirm/Cancel,性能更好;SAGA 由状态机驱动长流程;XA 为标准强一致协议。另含 @GlobalLock 读隔离增强。

必要用法与限制:AT 模式必须在每个业务库建立 undo_log 表,且与业务表同库,依赖本地事务,仅支持 MySQL/PostgreSQL/Oracle 等 ACID 数据库,Redis/Mongo 不可用。全局事务默认 60 秒超时,长事务需配置 @GlobalTransactional(timeoutMills = 300000),建议 15~30 秒。TCC 的 Confirm 必须幂等,Cancel 需处理空回滚,Seata 1.5.1+ 可用 useTCCFence = true 自动处理幂等、悬挂与空回滚。SAGA 不会自动回滚,需手动编写补偿逻辑,补偿须反向、幂等且可重试。读隔离可对查询加 FOR UPDATE 配合 @GlobalLock。Seata TC 建议至少 3 节点集群部署,undo_log 需定期清理,并监控全局事务成功率。单库事务应使用 Spring @Transactional,纯最终一致可考虑 Kafka/RocketMQ 事务消息。本技能不收集、存储或传输任何用户数据。