请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,万一 B 系统订单状态修改了,但是A系统却支付失败呢了

这种情况反过来的话岂不是和 A 系统支付成功了,B系统修改失败一样了?

正在回答 回答被采纳积分+3

1回答

Allen 2019-03-14 10:49:56

所以才需要分布式事务来解决呀。  比如补偿性事务,支付失败了,就把订单状态修改为失败就可以了

0 回复 有任何疑惑可以回复我~
  • 提问者 慕大侠 #1
    那上面的这种情况下,就相当于基于消息的分布式事务没法做到最终一致性了,订单显示已付款,但是实际付款失败了了,那不是没有做到一致性吗,这个情况下 基于消息的分布式事务是不是就没辙了,不采用TCC 的方案,就只能人工介入了? 但是你又说 基于mq 的是强一致性的,可以做到最终一致性,我没太理解这块儿。
    回复 有任何疑惑可以回复我~ 2019-03-14 11:11:48
  • Allen 回复 提问者 慕大侠 #2
    不会直接就变成已付款,那是最终状态。 在支付成功以前肯定是类似于支付中的状态, 支付成功就是已付款,支付失败就变成支付失败
    回复 有任何疑惑可以回复我~ 2019-03-15 21:08:22
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信