首页 > 解决方案 > 在 Spring AMQP 中处理 RabbitMQ DLQ 消息的最佳方法是什么

问题描述

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

标签: rabbitmqamqpspring-amqp

解决方案


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

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

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

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

在spring cloud stream 文档中有一个例子。


推荐阅读