退款流程中的疑问

来源:6-26 红包模块-过期红包-过期退款业务逻辑代码编写实战-2

liyanfeng

2019-07-30

退款流程中的三个步骤:
(1)创建退款订单
(2)修改旧订单的状态为已失效
(3)调用资金账户接口进行转账
(4)修改旧订单、退款订单的状态为退款成功
为啥不把(1)、(2)、(3)、(4)全部写在一个txRunner呀?而是分开成(1)(2)一个runner,(3)一个runner,(4)一个runner

写回答

1回答

枫荇

2019-08-08

您好!同学

大事务虽然可以很好的解决数据一致性的问题,但对性能影响很大,尤其是中间存在其他耗时的网络调用的时候,这里拆分成小事务:1. 对后面微服务深度改造埋下伏笔,2. 对于复杂流程,多步处理(多个小事务),这样就不会造成要么大家都玩,要么大家都玩不了多的尴尬局面,引入中间态,把复杂逻辑简单化,并且可以多步处理,还可以在中间态失败,并且可以在中间态恢复事务,继续补偿完成。

0
0

仿微信抢红包 Golang实战多版本抢红包系统

Golang红包系统单体版+并发版+分布式+微服务版,四大金装版、超值必修课

582 学习 · 159 问题

查看课程