Spring Boot 中的 Rabbitmq 并发消费者

Man*_*ha 3 spring rabbitmq spring-amqp spring-boot

我正在使用 @RabbitListener 注释和 SimpleRabbitListenerContainerFactory bean 并行执行rabbitmq 消息并通过以下方式设置最小和最大并发消费者:

@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory());
    factory.setConcurrentConsumers(MIN_RABBIT_CONCURRENT_CONSUMERS);
    factory.setMaxConcurrentConsumers(MAX_RABBIT_CONCURRENT_CONSUMERS);
    factory.setConsecutiveActiveTrigger(1);
    factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    return factory;
}
Run Code Online (Sandbox Code Playgroud)

最小限制为 3,最大限制为 10。使用此配置,即使队列中有 12 条消息,也只有 3 条消息并行执行。

请告诉我配置有什么问题?

Vin*_*dan 7

您可以使用 rabbitMQ 注释创建最大并发消费者

@RabbitListener(queues = "your-queue-name", concurrency = "4")
public void customCheck(Object requestObject) {
    // process
}
Run Code Online (Sandbox Code Playgroud)


Gar*_*ell 5

使用默认配置,如果其他消费者仍然忙碌,则会每 10 秒添加一个新消费者。

算法(以及影响它的属性)在此处描述