11

我有一个使用 SSL 传输的 activeMQ 代理。我有大约 10 个使用代理的消费者。我正在使用骆驼来配置我的路线。

每隔一段时间,它就会挂起并且不会消费新消息,即使我重新启动消费者,即使队列中有消息未决。

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

谢谢

4

3 回答 3

8

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

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

于 2012-04-19T15:48:36.363 回答
1

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

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

于 2012-04-07T15:33:26.883 回答
0

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

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

于 2014-11-20T23:16:56.320 回答