activemq消费者抛异常怎么办?
假如有订单和商品模块,订单下单成功后通过mq通知商品模块进行库存修改,如果商品模块在执行过程中抛异常了,是要对通知订单模块对订单回滚吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假如有订单和商品模块,订单下单成功后通过mq通知商品模块进行库存修改,如果商品模块在执行过程中抛异常了,是要对通知订单模块对订单回滚吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
我认为 订单和商品模块要求强一致(订单创建成功,则库存即刻减少,反之亦然)
分俩种情况讨论:
订单内部调用商品模块
有另一个服务C从外部调用 订单 和 商品
第二种情况已经涉及到分布式事务的相关问题了,此时如果你认为不要求强一致性,可以去查看相关资料,你用MQ也可以考虑我提议的调用顺序,先减库存,保证有库存,再发消息生成订单,通过多次重试,持久化消息等机制保证订单创建成功
订单下单成功并减库存应该放在同个事务里,要回滚就一起回滚,要重试一起重试,通过消息去触发,应该考虑下本身这个设计是否有问题
强一致就看看分布式事务
不然可以通过订单系统的补单机制,补到商品模块成功为止.