- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 rabbit 队列,其中包含要使用的消息。我还有一个可能会失败的监听器。该队列配置有死信交换(以及死信队列)。我想要的是在死信队列中的消息中看到异常信息。
这是它目前的工作方式:
但我想要的是在 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/
我正在创建一个死信 channel 错误处理程序,如下所示 errorHandler(deadLetterChannel("direct:myDLC").useOriginalMessage().ma
以下是我的 Camel 路线代码 .errorHandler(deadLetterChannel("jmstx:queue:ErrorHandler") .useOriginalMessage()
我正在尝试跨不同的集群系统进行分布式发布-订阅,但无论我尝试什么,它都不起作用。 我想做的就是创建一个简单的示例。 1)我创建一个主题,说“内容”。 2) 假设 jvm A 中的一个节点创建主题、订阅
我是一名优秀的程序员,十分优秀!