RabbitMQ:是否可以将多个通道与同一队列关联



我是RabbitMQ的新手。我理解通道就像一个连接的抽象(是真实连接的一部分(,一个通道与一个队列相关联。

我知道多个队列可以使用同一个通道。但我想知道多个消费者是否可以异步消费来自同一队列的消息,在这种情况下,每个消费者是否都有自己的专用通道。

具体来说,我理解以下是可能的:

/ queue 1 - consumer 1 (via channel 1)
Producer -> Exchange - queue 2 - consumer 2 (via channel 2)
 queue 3 - consumer 3 (via channel 3)

但是以下内容呢?

/ consumer 1 (via channel 1)
Producer -> Exchange - queue 1 - consumer 2 (via channel 2)
 consumer 3 (via channel 3)

我问这个问题的原因是我想通过一个频道池(或多个频道(加快消费速度。然而,我想不出一种方法来做到这一点。。。

每个连接可以使用多个通道。

Channel channel = connection.createChannel();

不要在线程之间共享通道。

当不再需要通道时,应将其关闭。

channel.close()

如果您正在使用弹簧:

@RabbitListener(queues = "queue-name", concurrency = "4")
public void listener(Object requestObject) {
// process
}

最新更新