我将默认DLQ配置如下:
spring:
cloud:
stream:
rabbit:
default:
consumer:
auto-bind-dlq: true
republish-to-dlq: true
dead-letter-queue-name: my-dlq
我想使用该默认DLQ中的消息并在业务域中对其进行处理。
如何使用 Spring Cloud Stream 收听这些消息?
谢谢
答案 0 :(得分:1)
没有内置任何内容,但是the documentation shows some techniques ...
由于您无法预料用户将如何处置死信,因此该框架未提供任何标准机制来处理死信。如果死信的原因是短暂的,则您可能希望将消息路由回原始队列。但是,如果问题是永久性问题,则可能导致无限循环。以下Spring Boot应用程序显示了一个示例,该示例说明了如何将这些消息路由回原始队列,但在尝试三次后将其移至第三个“停车场”队列。第二个示例使用RabbitMQ延迟消息交换为重新排队的消息引入延迟。在此示例中,每次尝试的延迟都会增加。这些示例使用@RabbitListener接收来自DLQ的消息。您还可以在批处理过程中使用RabbitTemplate.receive()。
...