金融级分布式事务怎么设计?

金融级分布式事务

金融级分布式事务怎么设计?

在金融系统中,事务的一致性、可靠性与高可用性是核心需求。

随着系统分布式化与微服务化趋势,传统单机或集中式事务模型难以满足跨服务、跨数据库的强一致性与低延迟要求。

金融级分布式事务架构需在保证原子性和隔离性的同时,兼顾可用性、可扩展性与审计合规。

 

金融级分布式事务架构

金融级分布式事务怎么设计?

在金融场景下,最常用的两种模式是 TCC(Try-Confirm-Cancel) 和 可靠消息最终一致性。

XA(2PC)因性能问题较少用于高并发核心链路。

TCC 模式(核心账务首选)

这是金融级分布式事务的皇冠,不同于XA的资源层(数据库锁)锁定,TCC是业务层的锁定。

Try(尝试执行):完成所有业务检查(一致性),预留必须业务资源(准隔离性)。

关键动作: 冻结资金。

Confirm(确认执行):真正执行业务,不作任何业务检查,只使用Try阶段预留的业务资源。

Cancel(取消执行):释放Try阶段预留的业务资源。

金融级分布式事务怎么设计?

为什么选TCC? 因为它给了业务方最细粒度的控制权。你可以清楚地看到资金是“可用余额”还是“冻结余额”。

可靠消息最终一致性(非核心链路)

适用于对实时性要求不高的场景,例如:充值成功后发短信、送积分、生成对账单。

架构:本地事务表 + MQ(RocketMQ事务消息)。

逻辑:主业务完成后,投递消息给下游。

如果下游失败,不断重试,直到成功。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧