Spring AMQP 有没有办法设置所有 VM 的最大消费者数量?

Spring AMQP is there a way to set the maximum number of consumers across all VMs?

我在 4 个不同的 JVM 上有 4 个 spring 启动应用 运行 实例。有没有办法设置最大的全球消费者?目前我有 setMaxConcurrentConsumers(1);放。问题是在每个 JVM 上创建了一个消费者。我希望在 4 个 JVM 中创建一个消费者。我目前正在使用 SimpleRabbitListenerContainerFactory 并希望该功能在那里可用。如果不能,这可以用 DirectRabbitListenerContainerFactory 实现吗?

基本上我想我是在问如何设置 channel.basicQos(15, true); // Spring-AMQP for RabbitMQ 中的每个通道限制。

谢谢, 布莱恩

如果该限制大于 1,则无法设置该限制。

要限制为单个消费者,您可以设置消费者的独占标志(在@RabbitListener上);那么只允许一个消费者,其他实例将继续尝试消费,直到当前消费者死亡(暖待机)。