Spring启动时Rabbitmq并发消费者

问题描述 投票:1回答:1

我正在使用@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;
}

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

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

spring spring-boot rabbitmq spring-amqp
1个回答
3
投票

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

算法(以及影响它的属性)是described here


0
投票

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

@RabbitListener(queues = "your-queue-name", concurrency = "4")
    public void customCheck(Object requestObject) {
    }
© www.soinside.com 2019 - 2024. All rights reserved.