我是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
}