我们如何分析 Activemq 死信队列中的消息

Posted

技术标签:

【中文标题】我们如何分析 Activemq 死信队列中的消息【英文标题】:How do we analyze messages in Dead Letter queue for Activemq 【发布时间】:2018-03-31 18:47:11 【问题描述】:

然后,Broker 接收消息并将其发送到死信队列 以便以后分析。

这些是来自 apache activemq 文章的引用。我的策略也是一样的。我想稍后分析死信队列中的消息。我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

死信队列 (DLQ) 与任何其他队列一样,您可以订阅它并使用 JMS MessageConsumer 或 QueueBrowser 使用消息。有了它,您可以从队列中获取消息并像检查任何其他消息一样检查它。当前的 ActiveMQ 客户端通常会在消息属性“dlqDeliveryFailureCause”中向消息存储添加中毒原因,这可以指示导致消息被丢弃的原因。

当然,如果您正在查看 WebConsole,您也可以通过这种方式查看 DLQ 中的消息并检查消息的属性。

基本上分析的原因和方式取决于您,代理提供检索消息的方法,您如何理解它们取决于您。

【讨论】:

【参考方案2】:

我做了一个简单的开源command line tool, called A,用于手动处理DLQ消息等。

此命令会将浏览一条消息的内容写入文件以供进一步检查。

a -b tcp://example.org:61616" -c 1 -o msg-data.txt ActiveMQ.DLQ

处理 DLQ 消息的常用方法是能够从系统的某些管理视图中处理它们。与检查内容一样,将错误消息与重试或丢弃消息的选项相关联。这需要一些开发。

【讨论】:

以上是关于我们如何分析 Activemq 死信队列中的消息的主要内容,如果未能解决你的问题,请参考以下文章

创建自定义死信队列

ActiveMQ_5死信队列

7道消息队列ActiveMQ面试题!

如何使用特定 ServiceInsight 从死信队列重新发送消息?

消息队列 - 死信、延迟、重试队列

ActriveMQ-消息重新传递和死信队列(DLQ)处理