请稍等 ...
×

采纳答案成功!

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

关于利用rabbitmq进行应用拆分

老师我在网上学习rabbitmq应用场景时候提出了一个双十一的解决方案,用户下单后直接返回下单成功,然后把减库存的操作交给消息队列,那么我有个疑问如果减库存失败就会出现用户下单成功,库存不减少问题,数据不同步???这个怎么解决呢?

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

1回答

Jimin 2018-09-05 00:31:12

你好,你这个肯定是有什么前提你没注意吧,要么会在前端提示可能会失败,要么就是库存无限,否则肯定有问题。
我认为你看的文章可能只是下单请求已经提交成功吧,之后异步处理,等订单处理成功或失败,再通知给用户。

1 回复 有任何疑惑可以回复我~
  • 提问者 qq_loneliness_0 #1
    老师,这个文章是这么介绍的,
    订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功。
    
    库存系统:订阅下单的消息,获取下单消息,进行库操作。 
    就算库存系统出现故障,消息队列也能保证消息的可靠投递,不会导致消息丢失(马云这下高兴了).
    他后面这里就蒙了
    回复 有任何疑惑可以回复我~ 2018-09-05 00:37:52
  • Jimin 回复 提问者 qq_loneliness_0 #2
    我理解这里就是生成了订单,然后发消息异步去处理,但是状态并没有推进到终态,后续可能成功,也可能失败。比如我们现在去网上买机票什么的,都是直接返回下单成功,之后正常能出票就购买成功了,不能正常出票就返回无座什么的。过程中,用户不停的刷新,看到的都是中间的状态,最终处理完,就是用户看到的终态。
    回复 有任何疑惑可以回复我~ 2018-09-05 00:44:22
  • 提问者 qq_loneliness_0 回复 Jimin #3
    谢谢老师,这么晚耐心的回答问题
    回复 有任何疑惑可以回复我~ 2018-09-05 00:46:34
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信