2014-10-03 92 views
1

我正在管理队列大小不断增加的ActiveMQ代理。我被告知这个问题可能与经纪人而不是消费者(其中7人)有关。不同消费者的ActiveMQ重复会话ID

大多数队列显示重复,一式三份等,不同消费者(每个单独的服务器)的SessionId列条目。

我以为每个消费者都会有自己的线程(每个队列?),而且这种状态似乎是错误的 - 因此我怀疑这导致缓慢的队列处理。

有人可以在“浏览活动用户”页面上了解消费者和SessionId之间的关系吗?

谢谢!

回答

1

对于每个消费者(并发或其他)线程,您将看到“浏览活动用户”页面中列出的会话ID。你所看到的是正确的。

性能问题可能来自许多方面,但我非常怀疑这是由于消费者的数量所致。队列备份(在任何提供商上)最常见的原因是性能不佳,消费者无法跟上消息的产生。为什么它表现不佳可以从网络到执行任何应用程序需要处理消息和提交(如果使用事务或其他非自动确认模式)所需的时间。

看看你的调度队列栏。如果在消费者中使用默认值,则每个消费者最多可以有1000条待处理消息。如果您看到出列计数缓慢增加,则刷新时通常表示消费者迟迟不承认。

+0

“看看你的调度队列中......如果你看到出队计数缓慢增加”你是指这里的同一列,还是分别是“调度队列”和“出队队列”? – 2014-10-03 18:53:33

+0

我的原始问题重新:SessionId是关于它的正常几个不同的消费者在该列中具有完全相同的值。你的回答没有明确提到...... – 2014-10-03 18:56:41

+0

是的,sessionid可以是相同的。会话ID与该特定会话相关。如果您正在共享会话(即并发使用者,并且在某些情况下使用事务),您将看到会话ID不同。分派队列表示分配给给定用户的消息数量。出队代表客户端实际消耗和查询的消息数量。因此,如果您在调度队列中看到消息,但出列计数没有增加或缓慢增加,通常可以将其与消费者性能问题联系起来。 – 2014-10-04 02:23:45