如何限制ActiveMQ JMS队列上的使用者数量

时间:2015-10-14 16:46:59

标签: jms activemq

我们正在使用ActiveMQ,我们正在寻找一种方法来为我们的一些JMS队列强制实施单一消费者政策。我花了一些时间谷歌搜索,但我找不到任何方法来限制队列中的消费者数量。

以下任何一种方法对我们来说都是很好的解决方案:

  • 一种指定队列中最大活动消费者数量的方法(在我们的例子中为1)。
  • 在创建新队列之前询问ActiveMQ以查看是否有任何消费者已为队列处于活动状态的方法。

由于

1 个答案:

答案 0 :(得分:1)

经纪人方面没有设置强制执行此类操作。但是,您可以在所有客户端中使用独占消费者选项。这将允许所有消费者连接,但只有一个消息实际上会收到所有消息,直到它退出并选择新的独家消费者。

如果您打算托管某种AMQ云服务,并且确实希望确保您的控制之外的应用程序符合SLA,那么您必须进行一些编码。您可以实现ActiveMQ插件。

如果您实现了一个插件并创建了一个BrokerFilter,那么您可以覆盖`addConsumer?方法。请查看RuntimeConfigurationPlugin以了解如何设置插件。

请注意,实施插件不是一个简单的管理员调整,但需要一些工作。