gpt4 book ai didi

java - 如何在兔子消息死信时指定附加信息

转载 作者:搜寻专家 更新时间:2023-11-01 02:05:49 25 4
gpt4 key购买 nike

我有一个 rabbit 队列,其中包含要使用的消息。我还有一个可能会失败的监听器。该队列配置有死信交换(以及死信队列)。我想要的是在死信队列中的消息中看到异常信息。

这是它目前的工作方式:

  1. 我向正常队列发送了损坏的消息。
  2. 我的监听器(我使用的是 Java 的 org.springframework.amqp.core.MessageListener)失败并出现类似以下内容:“java.lang.RuntimeException:损坏的消息”
  3. 消息被拒绝并通过死信交换进入死信队列。
  4. 当我查看 Rabbit 管理界面中的死信消息时,我看到: header :
    x-死亡:
    原因:拒绝

但我想要的是在 UI 的某处看到“java.lang.RuntimeException:损坏的消息”。我认为它应该是自定义 header ?

是否有可能,例如,将一般的 try-catch 放入我的监听器并使用异常信息增强 header ?

最佳答案

没有; RabbitMQ(实际上是 AMQP 规范)没有为消费者提供使用附加信息增强被拒绝消息的机制。该协议(protocol)仅支持确认或拒绝消息。

Spring AMQP 与重试拦截器一起提供了一种机制,可以将消息重新发布到不同的队列(可以与 DLQ 相同),并在 header 中添加附加信息(异常堆栈跟踪等)。

参见 RepublishMessageRecoverer in the section about error handling with asynchronous consumers .

关于java - 如何在兔子消息死信时指定附加信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com