Spring 启动 AMQP 并发侦听器按顺序执行?

Spring boot AMQP Concurrent listeners execute sequentially?

我有一个 Spring AMQP 侦听器定义如下 :-

@RabbitListener(queues = "spring-boot-durable", concurrency="10")
public void recieve(String message) {
   ....some code here
}

现在在 rabbitmq 管理门户中,当上述服务关闭时,我发布了 30 条消息,并启动了侦听器服务。

当我这样做时,消息是按顺序(一个接一个)执行的,而不是并行执行的(一次 10 个),尽管我将并发设置为 10,如上面的代码所示。

发生这种情况的任何原因以及对此的任何修复?

我相信您会受到 prefetchCount 的影响 - 默认情况下它是 250,因此所有消息都会发送给一个消费者。

减少它以在消费者之间分配,但我建议保持它高于 1;否则会影响性能。