开发者社区> 问答> 正文

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

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

我有一个应用场景 进程: 1.商品上架 i-- 商品上架成功 ii-- 发送 更新库存消息 iii-- 发送 发送提示有关人员消息

        情况一: 商品上架失败,直接本地事物回滚 情况二: 发送库存更新失败,直接让事物回滚 情况三: 发送提示有关人员消息失败 ,但此时已经发送更新库存了, 如何让 更新库存回滚

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

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

展开
收起
爱吃鱼的程序员 2020-06-01 14:02:42 682 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    ######回复 @prb_qb : 如果是小概率失败事件,你可以在情况三失败的时候发个库存回滚的mq。或者消息发送失败的时候进入死信队列,后面再统一处理。######回复 @山岳之巅 : 用事物并发会下降啊,如果是用事物的话,我知道怎么决解了。除了事物方式,还有其他方式可以实现吗?######回复 @prb_qb : rabbitmq也是有事务机制的,具体你看下这篇博客https://blog.csdn.net/a807719447/article/details/94589598######是在同一个事物中,但是发送提示有关人员消息失败,事物就算回滚,但此时更新库存的信息已经发送到rabbitmq了,如何删除掉rabbitmq的这条消息?######

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

    2020-06-01 14:02:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于RocketMQ Connect 构建全新数据流转处理平 立即下载
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载