我们正在使用ActiveMQ,我们正在寻找一种方法来为我们的一些JMS队列强制实施单一消费者政策。我花了一些时间谷歌搜索,但我找不到任何方法来限制队列中的消费者数量。
以下任何一种方法对我们来说都是很好的解决方案:
由于
答案 0 :(得分:1)
经纪人方面没有设置强制执行此类操作。但是,您可以在所有客户端中使用独占消费者选项。这将允许所有消费者连接,但只有一个消息实际上会收到所有消息,直到它退出并选择新的独家消费者。
如果您打算托管某种AMQ云服务,并且确实希望确保您的控制之外的应用程序符合SLA,那么您必须进行一些编码。您可以实现ActiveMQ插件。
如果您实现了一个插件并创建了一个BrokerFilter,那么您可以覆盖`addConsumer?方法。请查看RuntimeConfigurationPlugin以了解如何设置插件。
请注意,实施插件不是一个简单的管理员调整,但需要一些工作。