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

如何限制ActiveMQ JMS队列上的使用者数量,jms,activemq,Jms,Activemq,我们正在使用ActiveMQ,我们正在寻找一种方法来为我们的一些JMS队列强制执行单一使用者策略。我花了一些时间在谷歌上搜索,但我找不到任何方法来限制队列中的消费者数量 对于我们来说,以下任一项都是很好的解决方案: 指定队列上活动使用者最大数量的方法(在我们的案例1中) 在创建新队列之前,询问ActiveMQ以查看队列中是否有任何使用者已处于活动状态的一种方法 谢谢经纪人方面没有强制执行这种事情的设置。但是,您可以在所有客户机中使用独占消费者选项。这将允许所有消费者进行连接,但只有一个消费者

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

对于我们来说,以下任一项都是很好的解决方案:

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

谢谢

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

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

如果你实现了一个插件并创建了一个插件,那么你就可以覆盖“addConsumer?”?方法。看一看,看看如何设置插件


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

我们控制整个生态系统。AMQ代理、生产商和消费者都是我们自己的应用程序和基础架构。所以我不关心支持未知的应用程序。但是,由于我们的问题域中存在一些限制,我们有可能在每个队列中创建多个消息使用者,我们希望防止这种情况发生。您是否知道有任何机制可以询问AMQ关于队列的现有消费者的信息?我相信这一定是可能的,因为你可以在AMQ管理页面查看有关消费者的详细信息。谢谢