【问题标题】:What does it mean by "pending messages" and what is possible cause for ActiveMQ?“未决消息”是什么意思,ActiveMQ 的可能原因是什么?
【发布时间】:2021-02-24 17:57:11
【问题描述】:

我有一个使用来自 activeMQ 的消息的项目。它运行良好,但有时它会将待处理的消息卡在队列中。它说 1000 入队,0 出队,1000 出队。它还显示 1000 条待处理消息。

“待处理消息”的可能原因是什么?

【问题讨论】:

    标签: activemq


    【解决方案1】:

    “待处理消息”是队列中尚未被客户端确认的消息。这有时被称为队列的“消息计数”或队列的“深度”。

    “未决消息”计数不变的最可能原因是消费者以某种方式失败。它可能卡在某种其他类型的阻塞网络操作中,也可能完全离线。

    查看队列中的消费者数量。如果它 > 0,那么消费者仍然是连接的。此时,您应该检查各个消费者。假设客户端是基于 Java 的,那么在这种情况下收集线程转储是很好的,因为这将使您清楚地了解客户端正在做什么。如果消费者计数为 0,那么您需要重新附加消费者。

    【讨论】:

    • 待处理的消息是否被重新发送(重新处理?)直到它被确认?对我来说,待处理的消息停留在 1000(预取设置为 1000)并且即使没有更多传入消息也永远不会下降。我发现的一件事是,对于待处理的消息,标头 -> 重新传递的是false,而持久的是Non Persistent。对不起,如果这个问题含糊不清。我是activeMQ的新手..
    • 重新投递行为取决于your configuration。在我看来,您的客户只是不再确认消息(无论出于何种原因)。
    猜你喜欢
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2010-09-17
    • 1970-01-01
    • 2010-10-01
    • 2015-06-22
    相关资源
    最近更新 更多