【问题标题】:update payload of message in rabbitmq在 rabbitmq 中更新消息的有效负载
【发布时间】:2025-11-24 19:40:02
【问题描述】:

如果可能需要帮助,我尝试在 rabbitMQ 中更改队列中的消息,但直到现在我还没有找到任何方法。

有什么方法可以实现吗?像插件还是在 RabbitMQ Http 接口中?

示例:更改此消息的有效负载:

有关信息,我使用带有 Amqp 启动器的 spring boot 来建立连接,有什么方法可以获取类似此消息的特定消息并进行更新?

提前,谢谢。

【问题讨论】:

    标签: spring-boot rabbitmq queue amqp spring-amqp


    【解决方案1】:

    该请求在消息传递中根本没有意义。

    处理消息的body 不是消息中间件的职责。在大多数情况下,它是非常明智的基于应用程序的信息,甚至可以得到保护。

    另一方面,消息是不可变的,因此对它的任何修改都会产生一条新消息。而且由于我们无法修改队列中的消息,因此实际上没有任何挂钩可以帮助您。

    我认为您需要重新考虑您对主题的看法,并接受您无法修改消息的事实。

    但同时您可以使用该原始消息,构建一个新消息作为该消息的副本并修改正文并将其发送回队列。这就是您可以使用适当的消费者和生产者 API 在应用程序中执行的操作。

    【讨论】:

    • 感谢@Artem,我将回顾我对解决方案的看法,感谢您的回复。