退款流程中的疑问
来源: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. 对于复杂流程,多步处理(多个小事务),这样就不会造成要么大家都玩,要么大家都玩不了多的尴尬局面,引入中间态,把复杂逻辑简单化,并且可以多步处理,还可以在中间态失败,并且可以在中间态恢复事务,继续补偿完成。
00
相似问题