Перейти к основному содержимому
Руководство администратора
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Логическое значение
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Логическое значение
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Логическое значение