我有一个要求,我有1个直接交换,5个不同的队列用唯一的路由密钥绑定到它。基本上,每个队列都用于不同的使用者端点。我使用的是使用@RabbitListener
的spring托管端点注册表。因此,注册了5个端点。在实现它的过程中,我创建了一个RabbitListenerContainerFactory
,其concurrentConsumer
值为2。但我有一个问题,如果创建了一个消费者大小为2的工厂,那么所有端点都会有单独的消费者吗?或者消费者是每个工厂创建的,而这个containerFactory
将为所有5个端点服务。那么,如果2个消费者为所有5个队列提供服务,那么其他队列消费者将处于空闲状态,直到首先为一个队列消息提供服务,负载不会出现不平衡吗?我应该为不同的端点创建单独的containerFactory
吗?
每个@RabbitListener
都有自己的容器,每个容器有2个使用者。
它是一个容器工厂,用于为每个带注释的方法创建一个容器。将其视为一个"模板";与XML中的<rabbit:listener-container/>
元素非常相似,它有一组公共属性,但每个<rabbit:listener/>
子元素都有自己的容器。