Требуется только балансировщик нагрузки;однако Spring AMQP поддерживает долгоживущее совместно используемое соединение, поэтому балансировщик нагрузки обычно не приносит большой пользы, если у вас нет нескольких приложений.
С одним приложением (с одной фабрикой соединений) вы будете толькоподключен к одному брокеру.
Уточнение
См. документацию .
Начиная с версии 1.3, CachingConnectionFactoryможно настроить для кэширования соединений, а также только каналов.В этом случае каждый вызов createConnection () создает новое соединение (или извлекает свободное из кеша).Закрытие соединения возвращает его в кеш (если размер кеша не достигнут).Каналы, созданные на таких соединениях, тоже кэшируются.Использование отдельных соединений может быть полезно в некоторых средах, таких как использование кластера высокой доступности в сочетании с балансировщиком нагрузки для подключения к различным элементам кластера.Установите для cacheMode значение CacheMode.CONNECTION.
По умолчанию все компоненты (контейнеры прослушивателей, RabbitTemplates) совместно используют одно соединение с посредником.
Начиная с версии 2.0.2, RabbitTemplate
имеет свойство usePublisherConnection
;если для этого параметра установлено значение true, издатели будут использовать отдельное соединение с контейнерами слушателя - обычно рекомендуется избегать заблокированного соединения издателя, не позволяющего потребителям получать сообщения.
Как показано в цитате, использованиеодиночные (или 2) соединения управляются режимом кэширования фабрики соединений.
Установка режима кэширования на CONNECTION означает, что каждый компонент (потребитель контейнера слушателя, RabbitTemplate) получает свое собственное соединение.На практике будет только одно или два соединения с издателем, потому что операции публикации, как правило, недолговечны, и соединение кэшируется для повторного использования.Вы можете получить одно или два соединения с издателем, если выполняются параллельные операции публикации.