2015-11-03 44 views
2

我有一個要求,我有1個直接交換,並且5個不同的隊列通過唯一的路由鍵綁定到它。基本上每個隊列都是針對不同的消費者端點。我正在使用彈簧託管端點註冊表,使用@RabbitListener。所以有5個端點註冊。在我實現它的時候,我創建了一個RabbitListenerContainerFactory,其值爲concurrentConsumer。但是我有一個問題,如果有一個工廠創建的消費者規模爲2,那麼所有的終端都會有不同的消費者或消費者每個工廠都會創建,並且此containerFactory將爲所有5個端點提供服務。因此,如果2個消費者爲所有5個隊列服務,那麼其他隊列消費者將處於空閒狀態直到一個隊列消息首先被服務時,負載將不會不平衡。 我應該爲不同的終端創建單獨的containerFactory嗎?創建一個具有2個消費者和多個端點的單個RabbitListenerContainerFactory來監聽消息的行爲

回答

1

每個@RabbitListener都有自己的容器,每個容器都有2個消費者。

這是一個容器工廠用於爲每個註釋的方法創建一個容器。把它看作是一個「模板」;很像XML中的<rabbit:listener-container/>元素 - 它具有一組公共屬性,但每個子元素都有自己的容器。

相關問題