ActiveMQ Consumer挂起

时间:2012-04-04 19:12:46

标签: java activemq apache-camel

我有一个使用SSL传输的activeMQ代理。我有大约10个使用经纪人的消费者。我正在使用camel来配置我的路由。

即使重新启动消费者,即使队列中有待处理的消息,它也会经常挂起并且不会消耗新消息。

我开始尝试通过一次尝试复制问题来逐步通过我的消费者来隔离发生这种情况的地方。我终于找到了一个可以重新创建问题的消费者。它会在一段时间后挂起,但是,如果我转到活动的MQ管理控制台并尝试查看队列中的消息,它将再次开始运行。我认为Jetty导致连接发生刷新网页的队列,从而解除了我遇到的一些线程问题。我该怎么调试呢?

由于

3 个答案:

答案 0 :(得分:8)

我的一位同事偶然发现了一些有趣的事情,我刚刚在互联网上找到了解释:http://activemq.2283324.n4.nabble.com/Consumer-is-not-able-to-pick-messages-from-queue-td2531722.html

显然,当您有一个选择器并且所有消息都在同一队列中时,可以填充页面大小。这种情况发生在我们身上 - 我没有启动消费者,因此我最终得到了一整页消息,其中包含针对不同消费者的选择器,这导致我的正在运行的消费者没有收到任何额外的工作。

答案 1 :(得分:0)

尝试将队列预取设置为1以促进更好地分配给消费者并减少特定消费者的“卡住”消息

请参阅http://activemq.apache.org/what-is-the-prefetch-limit-for.html

答案 2 :(得分:0)

对你来说太晚了,但我遇到了同样的问题,问题是我试图使用我用来从队列中取出的相同连接将东西添加到队列中。

一旦我将它们分开(两个完全不同的上下文,一个用于生成,另一个用于消费),问题就解决了。