RabbitMq 如何保证一个进程内,多条消息的一致性?

发布于 2022-01-07 16:49:12 字数 313 浏览 957 评论 6

我有一个应用场景
进程:
1.商品上架
    i-- 商品上架成功
    ii-- 发送 更新库存消息
    iii-- 发送 发送提示有关人员消息
        
        情况一: 商品上架失败,直接本地事物回滚
        情况二: 发送库存更新失败,直接让事物回滚
        情况三: 发送提示有关人员消息失败 ,但此时已经发送更新库存了, 如何让 更新库存回滚

如何让发送发送提示有关人员消息失败时,将更新库存的消息回退

遇到这种情况,请问大家如何解决???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

鹤舞 2022-01-07 18:14:02

不明白有问题为啥都要@springboot-plus

巡山小妖精 2022-01-07 18:13:55

是在同一个事物中,但是发送提示有关人员消息失败,事物就算回滚,但此时更新库存的信息已经发送到rabbitmq了,如何删除掉rabbitmq的这条消息?

本宫微胖 2022-01-07 18:13:49

回复
rabbitmq也是有事务机制的,具体你看下这篇博客https://blog.csdn.net/a807719447/article/details/94589598

别低头,皇冠会掉 2022-01-07 18:12:42

回复
用事物并发会下降啊,如果是用事物的话,我知道怎么决解了。除了事物方式,还有其他方式可以实现吗?

剑心龙吟 2022-01-07 18:11:44

回复
如果是小概率失败事件,你可以在情况三失败的时候发个库存回滚的mq。或者消息发送失败的时候进入死信队列,后面再统一处理。

奢望 2022-01-07 18:10:06

1到3事件都放在一个方法中,使用同一个事务,任何一个事件失败回滚整体。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文