rabbitmq - 在 Spring AMQP 中处理 RabbitMQ DLQ 消息的最佳方法是什么
问题描述
我正在使用 Spring AMQP 来监听 RabbitMQ 队列。在侦听队列时,根据业务逻辑,我的服务可能会抛出 RuntimeException,在这种情况下,消息将重试几次。最大计数重试后,消息将保留在 DLQ 中。我想知道,在 DLQ 中处理这些消息的最佳方法是什么?我从博客中读到我可以使用 ParkingLot Queue。但同样在这种情况下,如何监控队列并通知人们死信消息?PS对不起我的英语。希望我能够解释我的问题:)
解决方案
您可以使用 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 文档中有一个例子。
推荐阅读
- c# - 如何循环 MoveTowards?
- java - 导入 CSV 文件和导入 json 文件到 MongoDB 的区别
- python - 向字典中预先存在的键添加值?
- ng-packagr - 相对@imports 破坏 ng-packagr 并出现错误“`file` 的返回值必须是字符串”
- mysql - 将csv文件导入MySQL表的单列
- python - 在列表中选择一个随机对象
- c - 如何将带引号的命令传递给 system()?
- ssh - 将 iSeries SFTP 自动化到远程 SFTP 主机
- c - 调用 recv() 函数时接收多个 html 内容?
- angular - 在 ngfor 之外使用计数器