Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

Spring RabbitMQ

Общее описание

Блок Spring RabbitMQ обеспечивает отправку и получение сообщений через очереди RabbitMQ в рамках потоков Bercut ESB с использованием клиента Spring RabbitMQ. Позволяет интегрировать ESB с сервисами, работающими через RabbitMQ, и организовывать асинхронный обмен данными.

Блок Spring RabbitMQ может использоваться в качестве:

  • блока-отправителя

  • блока-получателя.

Настройка блока

В данном разделе описаны параметры блока Spring RabbitMQ, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Dynamic EndpointdynamicEndpointДоступен только для блоков-отправителей
Параметр позволяет включить встроенную функциональность динамического определения вызываемой конечной точки. При включении параметра структура блока меняется таким образом, что в коде вместо определения to проставляется toD, а значение самого вызываемого ресурса может собираться из переменной, например ${header.foo}.
TrueЛогическое значение
ConnectionconnectionОбязательный параметр
Этот параметр позволяет выбрать предсозданное подключение или создать новое с помощью визарда Connection Manager.
Список
DescriptiondescriptionКраткое описание блока.Строка
Exchange NameexchangeNameОбязательный параметр
Определяет имя exchange в системе обмена сообщениями (например, RabbitMQ). Для блоков отправителей: задает exchange, в который будут отправлены сформированные сообщения. Для блоков получателей: определяет exchange, к которому будет привязана очередь (queue) для получения сообщений. Важное примечание: для использования default exchange необходимо явно указать значение default — нельзя оставлять поле пустым.
Строка
Dead Letter ExchangedeadLetterExchangeЗадает имя exchange в системе обмена сообщениями для перенаправления проблемных сообщений (dead letter exchange). Используется для изоляции ошибок с целью последующего анализа.Строка
Dead Letter Exchange TypedeadLetterExchangeTypeОпределяет тип exchange для перенаправления проблемных сообщений в системе обмена сообщениями, интегрированной с Bercut ESB. Тип exchange задает правила маршрутизации таких сообщений в очередь dead letters.
Возможные значения:
  • Direct — сообщения перенаправляются в очередь по точному совпадению ключа маршрутизации (routing key).
  • Topic — используется маршрутизация по маске ключа.
  • Headers — маршрутизация выполняется на основе заголовков сообщения, а не ключа маршрутизации.
  • Fanout — все сообщения рассылаются во все привязанные очереди без учета ключа маршрутизации или заголовков.
DirectСписок
Dead Letter QueuedeadLetterQueueЗадает имя очереди недоставленных сообщений (dead letter queue, DLQ), куда перенаправляются сообщения, которые не удалось обработать в штатном режиме. Используется получателем (consumer) при возникновении ошибок.Строка
Dead Letter Routing KeydeadLetterRoutingKeyПараметр, который определяет ключ маршрутизации, используемый при перенаправлении сообщений в очередь недоставленных сообщений. Он позволяет контролировать, с каким ключом сообщения будут маршрутизироваться в специальную очередь после возникновения ошибки обработкиСтрока
Disable Reply TodisableReplyToУправляет созданием заголовка ReplyTo в исходящем сообщении. Если установлено значение True, компонент отключает автоматическое формирование заголовка Reply‑To, который обычно указывает адрес для ответа (например, очередь или endpoint). Это предотвращает неявную обратную связь и позволяет явно контролировать маршрутизацию ответов. Если False, заголовок Reply‑To формируется автоматически на основе контекста потока (например, копируется из входящего сообщения или задается по умолчанию).FalseЛогическое значение
QueuesqueuesСписок очередей, к которым компонент будет подключаться для отправки или получения сообщений. Может содержать одну или несколько очередей, разделенные запятой. Если ни одна очередь не настроена, сгенерируется уникальный идентификатор в качестве имени очереди.Список строк
Routing KeyroutingKeyКлюч маршрутизации, используемый при публикации сообщений в exchange. Определяет, в какую очередь (или какие очереди) попадет сообщение на основе правил привязки (bindings). Критически важен для моделей маршрутизации direct, topic.Строка
Test Connection On StartuptestConnectionOnStartupЕсли True, компонент проверяет доступность сервера (RabbitMQ) при запуске потока. Гарантирует, что соединение установлено до начала обработки сообщений. При ошибке — поток не стартует.FalseЛогическое значение
Acknowledge ModeacknowledgeModeДоступен только для блоков-получателей
Флаг, управляющий поведением контейнера в отношении подтверждения сообщений. Возможные значения:
  • NONE — брокер не ожидает подтверждений, считает, что все сообщения подтверждены сразу после отправки (аналог autoack в RabbitMQ). При этом режиме канал не может быть транзакционным.
  • MANUAL — слушатель сам отправляет подтверждения с помощью Channel.basicAck(long, boolean). Подходит как для транзакционных, так и для нетранзакционных каналов.
  • AUTO — контейнер сам обрабатывает подтверждения (слушателю не нужно знать о канале или сообщении).
Список
Async ConsumerasyncConsumerДоступен только для блоков-получателей
Определяет, будет ли получатель обрабатывать Exchange асинхронно. Если включено, получатель может забрать следующее сообщение из очереди, пока предыдущее обрабатывается асинхронно (с помощью Asynchronous Routing Engine). В этом случае сообщения могут обрабатываться не строго по порядку. Если отключено (по умолчанию), Exchange полностью обрабатывается до того, как получатель заберёт следующее сообщение.
falseЛогическое значение
Auto DeclareautoDeclareДоступен только для блоков-получателей
Определяет, должен ли получатель автоматически объявлять привязку (binding) между exchange, очередью и ключом маршрутизации при запуске.
TrueЛогическое значение
Auto StartupautoStartupДоступен только для блоков-получателей
Определяет, должен ли контейнер получателя автоматически запускаться.
TrueЛогическое значение
Exchange TypeexchangeTypeДоступен только для блоков-получателей
Тип exchange. Допустимые значения: direct, fanout, headers, topic.
directСтрока
No LocalnoLocalДоступен только для блоков-получателей
Если установлено значение true, включается режим no-local — получатель не будет получать сообщения, опубликованные им самим.
FalseЛогическое значение
ExclusiveexclusiveДоступен только для блоков-получателей
Если установлено значение true, получатель становится эксклюзивным (только он может потреблять из этой очереди).
FalseЛогическое значение
Maximum Retry AttemptsmaximumRetryAttemptsТолько для блоков‑получателей
Количество попыток, которое получатель RabbitMQ предпримет для повторной обработки сообщения и которое не обработалось.
5Целое число
Reject And Don’t RequeuerejectAndDontRequeueТолько для блоков‑получателей
Определяет, должен ли получатель RabbitMQ отклонить сообщение без его повторной постановки в очередь. При включении этой опции неудачные сообщения могут быть отправлены в Dead Letter Exchange/Queue — если такая настройка выполнена на брокере.
trueЛогическое значение
Retry DelayretryDelayДоступен только для блоков-получателей
Задержка (в миллисекундах), которую получатель RabbitMQ будет ожидать перед повторной доставкой сообщения, которое не обработалось.
1000Целое число
Allow Null BodyallowNullBodyДоступен только для блоков-отправителей
Разрешает обработку сообщений с пустым телом (null/пустая строка). Если False, сообщение с пустым payload будет отклонено или вызовет ошибку. Полезно для сигнальных сообщений или heartbeat‑механизмов.
FalseЛогическое значение
Auto Declare ProducerautoDeclareProducerДоступен только для блоков-отправителей
Определяет, должен ли отправитель автоматически объявлять при запуске привязку между обменом (exchange), очередью (queue) и ключом маршрутизации (routing key).
FalseЛогическое значение
ConfirmconfirmДоступен только для блоков-отправителей
Управляет режимом ожидания подтверждения доставки сообщений для отправителя.
Возможные значения:
  • Auto: автоматически определяет, поддерживает ли фабрика соединений подтверждения (если да — использует их, если нет — отключает).
  • Enabled: принудительно включает ожидание подтверждений.
  • Disabled: отключает ожидание подтверждений — сообщения отправляются без проверки их принятия брокером.
Важно: для работы режима enabled фабрика соединений должна быть явно настроена на поддержку publisher confirms. В противном случае возможны ошибки отправки.
AutoСписок
Confirm TimeoutconfirmTimeoutДоступен только для блоков-отправителей
Таймаут (в мс) ожидания подтверждения доставки при включенном Confirm. Если подтверждение не получено за это время, считается, что отправка не удалась.
5000 (5 с)Целое число
Reply TimeoutreplyTimeoutДоступен только для блоков-отправителей
Таймаут (в мс) ожидания ответа при использовании паттерна inOut. Если ответ не получен за указанное время, генерируется ошибка таймаута. При использовании отрицательного значения - таймаут считается бесконечным.
30000 (30 с)Целое число
Skip Bind QueueskipBindQueueДоступен только для блоков-отправителей
Если True, пропускает операцию привязки очереди (queue bind) к exchange. Используется, если привязка уже настроена вручную или через другой механизм.
FalseЛогическое значение
Skip Declare ExchangeskipDeclareExchangДоступен только для блоков-отправителей
Если True, пропускает объявление exchange на сервере. Предполагает, что exchange уже существует.
FalseЛогическое значение
Skip Declare QueueskipDeclareQueueДоступен только для блоков-отправителей
Если True, пропускает объявление очереди на сервере. Предполагает, что очередь уже создана. Полезно для подключения к существующим очередям.
FalseЛогическое значение
Use Publisher ConnectionusePublisherConnectionДоступен только для блоков-отправителей
Определяет, использовать ли отдельное соединение для отправителей (publishers) и получателей (consumers).
Возможные значения:
  • True — для отправителей и получателей создаются отдельные соединения с брокером сообщений
  • False — отправители и получатели используют общее соединение.
FalseЛогическое значение

Расширенные параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Lazy Start ProducerlazyStartProducerДоступен только для блоков-отправителей
Определяет, будет ли отправитель запускаться только при обработке первого сообщения, а не при старте потока. Если установлено значение True, запуск отправителя откладывается до момента получения первого сообщения.
FalseЛогическое значение
Bridge Error HandlerbridgeErrorHandlerДоступен только для блоков-получателей
Определяет стратегию обработки ошибок на уровне интеграционного моста (bridge) в Bercut ESB. Отвечает за реакцию системы на сбои при передаче сообщений между компонентами. Может включать повторные попытки отправки, перенаправление в очередь ошибок, логирование и т. д. Функция доступна только для тех сторонних компонентов, которые позволяют системе получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают ошибки внутри себя — в таких случаях использование bridgeErrorHandler невозможно.
FalseЛогическое значение
Concurrent ConsumersconcurrentConsumersДоступен только для блоков-получателей
Указывает количество одновременных получателей по умолчанию при использовании JMS (не для запроса/ответа через JMS). Также для управления динамическим увеличением/уменьшением масштабирования потоков используется параметр Max Messages Per Task. При выполнении запроса/ответа через JMS для управления количеством одновременных получателей в листенере ответных сообщений используется опция Reply To Concurrent Consumers.
Целое число
Exception HandlerexceptionHandlerДоступен только для блоков-получателей
Определяет стратегию обработки исключений на уровне компонента. По умолчанию используется стандартный обработчик org.apache.camel.spi.ExceptionHandler, который логирует ошибки на уровнях WARN или ERROR и игнорирует их. Позволяет настроить кастомную логику обработки (повторные попытки, перенаправление в очередь ошибок и т. д.).
Строка
Exchange PatternexchangePatternДоступен только для блоков-получателей
Задает шаблон взаимодействия между компонентами в интеграционном потоке. Определяет способ передачи сообщений и ожидания ответа.
Возможные значения:
  • InOnly (однонаправленный вызов: сообщение отправляется, ответ игнорируется).
  • InOut (двунаправленный вызов: ожидается ответ от хранимой процедуры, который будет передан дальше по потоку).
Выбор шаблона влияет на то, как компонент обрабатывает результат выполнения процедуры и передает его следующему шагу потока.
Список
Max Concurrent ConsumersmaxConcurrentConsumersДоступен только для блоков-получателей
Указывает максимальное количество одновременных получателей при использовании JMS (не для запроса/ответа через JMS). Также для управления динамическим увеличением/уменьшением масштабирования потоков используется параметр Max Messages Per Task. При выполнении запроса/ответа через JMS для управления количеством одновременных получателей в листенере ответных сообщений используется опция Reply To Max Concurrent Consumers.
Целое число
Message Listener Container TypemessageListenerContainerTypeДоступен только для блоков-получателей
Тип MessageListenerContainer.
Возможные значения:
  • DMLC (DefaultMessageListenerContainer)
  • SMLC (SimpleMessageListenerContainer).
DMLCСтрока
Prefetch CountprefetchCountДоступен только для блоков-получателей
Указывает брокеру, сколько сообщений отправлять каждому получателю в одном запросе. Обычно это значение можно существенно увеличить для повышения пропускной способности.
Целое число
RetryretryДоступен только для блоков-получателей
Пользовательская конфигурация повторных попыток. Если параметр настроен, другие настройки повторных попыток (например, maximumRetryAttempts) не используются.
Строка
ArgsargsПозволяет задать аргументы конфигурации для различных концепций RabbitMQ. Аргументы передаются в формате «префикс.ключ=значение».
Возможные значения:
  • arg.consumer
  • arg.exchange
  • arg.queue
  • arg.binding
  • arg.dlq.exchange
  • arg.dlq.queue
  • arg.dlq.binding
Пример: queue.x-message-ttl=60000 задает время жизни сообщений в очереди (TTL) — 60 000 мс (60 секунд).
Строка
Message ConvertermessageConverterОпределяет класс‑конвертер, отвечающий за преобразование байтового представления сообщения в объектную модель (и обратно) на границах ESB (при приеме/отсылке).
Отвечает за:
  • Десериализацию входящих данных (например, JSON → Java‑объект).
  • Сериализацию исходящих данных (Java‑объект → JSON/XML/etc.).
  • Определение типа контента (Content‑Type).
Строка
Message Properties ConvertermessagePropertiesConverterОпределяет конвертер для преобразования свойств сообщения между внешним представлением и внутренней моделью Bercut ESB.
Возможные значения для преобразования:
  • HTTP‑заголовки в Map<String, Object> ESB.
  • JMS‑свойства (строки, числа, булевы) в типизированные свойства потока.
  • Заголовки Kafka в контекст сообщения.
Пример: DefaultMessagePropertiesConverter — стандартный конвертер, поддерживающий базовые типы.
Строка
SynchronoussynchronousОпределяет режим обработки сообщения:
  • True — синхронный вызов: поток ESB блокируется до получения ответа от целевого сервиса.
  • False — асинхронный вызов: сообщение ставится в очередь, поток ESB не блокируется.
FalseЛогическое значение
PatternpatternДоступен только для блоков-отправителей
Шаблон взаимодействия (Exchange Pattern) для обмена сообщениями. Определяет направление потока данных между его компонентами.
Возможные значения:
  • InOnly (однонаправленный вызов: сообщение отправляется, ответ игнорируется).
  • InOut (двунаправленный вызов: ожидается ответ от хранимой процедуры, который будет передан дальше по потоку).
Выбор шаблона влияет на то, как компонент обрабатывает результат выполнения процедуры и передает его следующему шагу потока.
Список
DisableddisabledДоступен только для блоков-отправителей
Определяет, будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться.
FalseЛогическое значение