支付宝蚂蚁金服——基于通用 TCC 的分布式事务场景   文/肖钦   03-27 15:26

通用型 TCC 解决方案就是最典型的 TCC 模型实现,所有从业务服务都需要参与到主业务服务的决策当中,如下图所示。

▲ 通用 TCC 模型

由于从业务服务的结果会影响到主业务服务的决策,因此通用型 TCC 解决方案适用于执行时间确定且较短的业务,比如互联网金融企业最核心的三个服务:交易、支付、账务。

▲ 支付业务流程

当用户发起一笔交易时,首先访问交易服务,创建交易订单;然后交易服务再调用支付服务为该交易创建支付订单,执行收款,最后支付服务调用账务服务记录账户流水和记账。

为了保证三个服务一起完成一笔交易,可以使用通用型 TCC 分布式事务模型,将这三个服务放在一个分布式事务中,交易作为主业务服务,支付作为从业务服务,账务作为支付的嵌套从业务服务,由 TCC 模型保证事务的原子性。

▲ 支付业务的 TCC 流程

支付服务的 Try 接口创建支付订单,并调用账务服务的 Try 接口;账务服务在 Try 接口中冻结买家资金。一阶段调用完成后,交易完成,提交本地事务,由 TCC 框架完成分布式事务各从业务服务二阶段的调用。

支付服务二阶段先调用账务服务的 Confirm 接口,解冻买家资金;增加卖家可用资金。调用成功后,支付服务将支付订单修改为完成状态,完成支付。

当支付和账务服务二阶段都调用完成后,整个分布式事务结束。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yubaibai360@qq.com 举报,一经查实,本站将立刻删除。

[ 标签:支付宝蚂蚁金服 ]

相关文章