RabbitMq 如何保证一个进程内,多条消息的一致性?
我有一个应用场景 进程: 1.商品上架 i-- 商品上架成功 ii-- 发送 更新库存消息 iii-- 发送 发送提示有关人员消息 情况一: 商品上架失败,直接本地事物回滚 情况二: 发送库存更新失败,直接让事物回滚 情况三: 发送提示有关人员消息失败 ,但此时已经发送更新库存了, 如何让 更新库存回滚
如何让发送发送提示有关人员消息失败时,将更新库存的消息回退
遇到这种情况,请问大家如何解决???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不明白有问题为啥都要@springboot-plus
是在同一个事物中,但是发送提示有关人员消息失败,事物就算回滚,但此时更新库存的信息已经发送到rabbitmq了,如何删除掉rabbitmq的这条消息?
回复
rabbitmq也是有事务机制的,具体你看下这篇博客https://blog.csdn.net/a807719447/article/details/94589598
回复
用事物并发会下降啊,如果是用事物的话,我知道怎么决解了。除了事物方式,还有其他方式可以实现吗?
回复
如果是小概率失败事件,你可以在情况三失败的时候发个库存回滚的mq。或者消息发送失败的时候进入死信队列,后面再统一处理。
1到3事件都放在一个方法中,使用同一个事务,任何一个事件失败回滚整体。