我有一个带有消息的兔子队列。我也有一个失败的倾听者。队列配置了死信交换(以及死信队列)。我想要的是在死信队列中看到消息中的异常信息。
目前它的工作原理如下:
但我想要的是在UI上的某处看到“java.lang.RuntimeException:corrupted message”。我认为它应该是一个自定义标题?
例如,是否可以将一般的try-catch放入我的监听器并使用异常信息增强标头?
没有; RabbitMQ(实际上是AMQP规范)没有为消费者提供任何机制来增强被拒绝的消息和附加信息。该协议仅支持确认或拒绝消息。
Spring AMQP与重试拦截器一起提供了一种机制,可以将消息重新发布到不同的队列(可以与DLQ相同),并在头文件中添加其他信息(异常堆栈跟踪等)。
见RepublishMessageRecoverer
in the section about error handling with asynchronous consumers。