3

我正在设置一个需要扩展的应用程序。我将消息发布到 Active MQ 并从那里读取消息。

到目前为止,我已经使用了最多 3 个并发消费者指向一个队列(每个消费者从不同的物理机器上操作)。

我需要知道最多可以有多少消费者指向 Active MQ 中的队列。

它有最大限制吗?

我找到了这个链接:

http://activemq.apache.org/multiple-consumers-on-a-queue.html

但它没有说明关于最大连接数/会话数/消费者的任何信息。它只说每个连接一个会话。

4

2 回答 2

5

JMS 规范没有规定对消费者数量的任何限制。您可以为给定的队列或主题添加任意数量的消费者。

问题是你真正需要多少消费者。增加消费者的数量将允许您进行更多的并行处理,但您将面临内存问题。例如,如果您在一台机器上启动数千个消费者,它只会启动数千个将消耗内存的线程。

此外,如果单个队列有多个消费者,最好让选择器从队列中过滤掉消息,这样您就可以对消息进行一些控制以及哪些侦听器应该使用它们。

于 2013-04-17T09:30:10.857 回答
4

任意数量的消费者都可以指向该队列。但只有 1 个消费者能够访问该队列中的对象。一旦它检索到对象,该特定消费者将断开连接,其他消费者将连接到您的队列。您可以在 xml 文件中指定队列的大小。您可以在某些搜索引擎中轻松找到它。我不记得确切的标签名称。

于 2013-04-16T16:54:25.930 回答