有没有办法限制RabbitMQ队列上的使用者数量?

有没有办法限制RabbitMQ队列上的使用者数量?,rabbitmq,Rabbitmq,我有一个RabbitMQ设置,有很多队列。由于每个队列中数据的性质,必须严格按照顺序处理,因此我们只能允许每个队列中有一个消费者。这本身不是问题,但我们确实存在意外启动队列中第二个使用者的风险,这将是一件坏事。这里有很多队列和应用程序服务器,我们只需输入一个小错误就可以在这个场景中结束 在我花时间更改软件以有效地“锁定”队列(将该锁存储在DB或其他东西中)之前,RabbitMQ中是否有任何东西可以限制队列可以拥有的使用者数量?如果是这样的话,我可以将我的队列限制为一个消费者,这样我就不会有多个消

我有一个RabbitMQ设置,有很多队列。由于每个队列中数据的性质,必须严格按照顺序处理,因此我们只能允许每个队列中有一个消费者。这本身不是问题,但我们确实存在意外启动队列中第二个使用者的风险,这将是一件坏事。这里有很多队列和应用程序服务器,我们只需输入一个小错误就可以在这个场景中结束

在我花时间更改软件以有效地“锁定”队列(将该锁存储在DB或其他东西中)之前,RabbitMQ中是否有任何东西可以限制队列可以拥有的使用者数量?如果是这样的话,我可以将我的队列限制为一个消费者,这样我就不会有多个消费者的风险


干杯

方法中的标志用于此目的。

如果您使用的是
sprig框架
,则可以在标记RabbitListener
@RabbitListener
中使用标记
exclusive=true
。因此,您可以将队列限制为一个消费者


@RabbitListener(queues=“${queue.name}”,exclusive=true)

我来晚了,但是对于可能遇到这种情况的人-如果您只需要一个活动消费者,您可以使用新功能(从3.8开始)-

单一活跃消费者

单个活动耗电元件允许一次只有一个耗电元件 从队列中消费并故障转移到另一个已注册的消费者 如果激活的一个被取消或消失


谢谢,太好了。很明显,现在我实际上看到了“消费”方法!