MySQL 分布式事务有哪些方案?怎么选?
① XA 两阶段提交(2PC):数据库原生支持(prepare/commit),强一致但性能差、阻塞;② TCC(Try-Confirm-Cancel):业务补偿,最终一致、性能好,实现复杂(需写三套逻辑);③ 本地消息表:本地事务写业务+消息表,异步投递,最终一致,简单可靠;④ MQ 事务消息(RocketMQ 半消息):本地事务与消息投递原子,异步解耦;⑤ Saga:长事务拆子事务+补偿,适合流程长场景;⑥ Seata(阿里):AT 模式(自动补偿,基于 undo log 镜像)——无侵入,推荐 Java 生态。选型:性能/一致性权衡——强一致用 XA(少用),最终一致优先本地消息表/Seata AT。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。