当前位置: 首页 > 知识库问答 >
问题:

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

蒲坚
2023-03-14

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

共有1个答案

宗政兴发
2023-03-14

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

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

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

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

Spring-Cloud-Stream文档中有一个这样的例子。

 类似资料:
  • 问题内容: 我有一个方法可以执行一些超时任务。我使用ExecutorServer.submit()获取Future对象,然后使用超时调用future.get()。这工作正常,但是我的问题是处理可能由我的任务引发的检查异常的最佳方法。以下代码可以正常工作,并保留检查的异常,但是如果方法签名中的检查的异常列表发生更改,则显得非常笨拙且容易中断。 对于如何解决这个问题,有任何的建议吗?我需要以Java

  • 我有一个Netty4.x应用程序,它需要发送和接收ASCII消息,从一个固定长度(10位数,零填充)字段开始,包含以#字符为单位的消息大小。消息如下:

  • 我有一个超时执行任务的方法。我使用ExecutorServer.submit()获取一个Future对象,然后调用future.get()并超时。这很好,但是我的问题是处理我的任务可能抛出的检查异常的最好方法。下面的代码工作正常,并且保留了被检查的异常,但是如果方法签名中被检查的异常的列表改变了,它看起来非常笨拙并且容易出错。 关于如何解决这个问题的任何建议?我需要以Java 5为目标,但我也很好

  • 因此,我有一个Javascript脚本,它在一个循环中将小的分数相加,它有可能将0.2加到0.1。然后,这个值被输入到另一个函数,但问题是,我需要0.3来精确输入,而不是0.3000000000000004。 什么是最简单的方法,以确保数字是正确和准确的。注意,它可能得到0.25+0.125等,被添加到简单的四舍五入到小数点1不会解决问题。 也有可能添加0.2+0.1000000000000000

  • 问题内容: 我有一个针对客户的减速器,另一个针对AppToolbar的减速器,还有一些其他的减速器… 现在让我们说我创建了一个删除客户端的提取操作,如果失败,我在Clients reducer中会有代码,该代码应该做一些事情,但是我也想在AppToolbar中显示一些全局错误。 但是客户端和AppToolbar减速器不共享状态的同一部分,因此我无法在减速器中创建新的动作。 那么我应该如何显示全局错

  • 问题内容: 我使用Node-Mongo-Native并尝试设置全局连接变量,但是我对两种可能的解决方案感到困惑。你们可以帮我选哪一个是好人吗?1.解决方案(这很糟糕,因为每个请求都将尝试创建新的连接。) 解决方案(在应用程序初始化时进行连接并将连接字符串分配给全局变量)。但我认为将连接字符串分配给全局变量不是一个好主意。 var mongodb; var url =’[connectionStri