金融级分布式事务

在金融系统中,事务的一致性、可靠性与高可用性是核心需求。
随着系统分布式化与微服务化趋势,传统单机或集中式事务模型难以满足跨服务、跨数据库的强一致性与低延迟要求。
金融级分布式事务架构需在保证原子性和隔离性的同时,兼顾可用性、可扩展性与审计合规。
金融级分布式事务架构

在金融场景下,最常用的两种模式是 TCC(Try-Confirm-Cancel) 和 可靠消息最终一致性。
XA(2PC)因性能问题较少用于高并发核心链路。
TCC 模式(核心账务首选)
这是金融级分布式事务的皇冠,不同于XA的资源层(数据库锁)锁定,TCC是业务层的锁定。
Try(尝试执行):完成所有业务检查(一致性),预留必须业务资源(准隔离性)。
关键动作: 冻结资金。
Confirm(确认执行):真正执行业务,不作任何业务检查,只使用Try阶段预留的业务资源。
Cancel(取消执行):释放Try阶段预留的业务资源。

为什么选TCC? 因为它给了业务方最细粒度的控制权。你可以清楚地看到资金是“可用余额”还是“冻结余额”。
可靠消息最终一致性(非核心链路)
适用于对实时性要求不高的场景,例如:充值成功后发短信、送积分、生成对账单。
架构:本地事务表 + MQ(RocketMQ事务消息)。
逻辑:主业务完成后,投递消息给下游。
如果下游失败,不断重试,直到成功。