在 Spring AMQP 中处理 RabbitMQ DLQ 消息的最佳方法是什么

What is the best approach for dealing with RabbitMQ DLQ messages in Spring AMQP

我正在使用 Spring AMQP 来监听 RabbitMQ 队列。在侦听队列时,根据业务逻辑,我的服务可能会抛出 RuntimeException,在这种情况下,消息将重试多次。最大次数重试后,消息将保留在 DLQ 中。我想知道,在 DLQ 中处理这些消息的最佳方法是什么?我从博客上读到我可以使用 ParkingLot Queue。但同样在这种情况下,如何监控队列并通知人们死信消息? P.S。对不起我的英语不好。希望我能够解释我的问题:)

您可以使用 RabbitMQ REST api(Hop 客户端)来获取 DLQ 的状态。

您还可以使用 Spring 的 RabbitAdmin.getQueueProperties("my.dlq") 来获取消息计数。

https://docs.spring.io/spring-amqp/docs/current/reference/html/#broker-configuration

其他选项包括在 DLQ 上添加另一个侦听器,运行 它会定期将其发送回原始队列,或者在失败次数过多时将其发送到停车场队列。

spring cloud stream documentation 中有一个例子。