Spring RabbitMQ
Общее описание
Блок Spring RabbitMQ обеспечивает отправку и получение сообщений через очереди RabbitMQ в рамках потоков Bercut ESB с использованием клиента Spring RabbitMQ. Позволяет интегрировать ESB с сервисами, работающими через RabbitMQ, и организовывать асинхронный обмен данными.
Блок Spring RabbitMQ может использоваться в качестве:
-
блока отправителя
-
блока получателя
Настройка блока
В данном разделе описаны параметры блока Spring RabbitMQ, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Dynamic Endpoint | dynamicEndpoint | Параметр позволяет включить встроенную функциональность динамического определения вызываемой конечной точки. При включении параметра структура блока меняется таким образом, что в коде вместо определения to проставляется toD, а значение самого вызываемого ресурса может собираться из переменной, например ${header.foo}. | True | Логическое значение |
| Connection | connection | Обязательный параметр Этот параметр позволяет выбрать предсозданное подключение или создать новое с помощью визарда Connection Manager. | Список | |
| Description | description | Краткое описание блока. | Строка | |
| Exchange Name | exchangeName | Обязательный параметр Определяет имя exchange в системе обмена сообщениями (например, RabbitMQ). Для блоков отправителей: задает exchange, в который будут отправлены сформированные сообщения. Для блоков получателей: определяет exchange, к которому будет привязана очередь (queue) для получения сообщений. Важное примечание: для использования default exchange необходимо явно указать значение default — нельзя оставлять поле пустым. | Строка | |
| Dead Letter Exchange | deadLetterExchange | Задает имя exchange в системе обмена сообщениями для перенаправления проблемных сообщений (dead letter exchange). Используется для изоляции ошибок с целью последующего анализа. | Строка | |
| Dead Letter Exchange Type | deadLetterExchangeType | Определяет тип exchange для перенаправления проблемных сообщений в системе обмена сообщениями, интегрированной с Bercut ESB. Тип exchange задает правила маршрутизации таких сообщений в очередь dead letters. Возможные значения:
| Direct | Список |
| Dead Letter Queue | deadLetterQueue | Задает имя очереди недоставленных сообщений (dead letter queue, DLQ), куда перенаправляются сообщения, которые не удалось обработать в штатном режиме. Используется получателем (consumer) при возникновении ошибок. | Строка | |
| Dead Letter Routing Key | deadLetterRoutingKey | Параметр, который определяет ключ маршрутизации, используемый при перенаправлении сообщений в очередь недоставленных сообщений. Он позволяет контролировать, с каким ключом сообщения будут маршрутизироваться в специальную очередь после возникновения ошибки обработки | Строка | |
| Disable Reply To | disableReplyTo | Управляет созданием заголовка ReplyTo в исходящем сообщении. Если установлено значение True, компонент отключает автоматическое формирование заголовка Reply‑To, который обычно указывает адрес для ответа (например, очередь или endpoint). Это предотвращает неявную обратную связь и позволяет явно контролировать маршрутизацию ответов. Если False, заголовок Reply‑To формируется автоматически на основе контекста потока (например, копируется из входящего сообщения или задается по умолчанию). | False | Логическое значение |
| Queues | queues | Список очередей, к которым компонент будет подключаться для отправки или получения сообщений. Может содержать одну или несколько очередей, разделенные запятой. Если ни одна очередь не настроена, сгенерируется уникальный идентификатор в качестве имени очереди. | Список строк | |
| Routing Key | routingKey | Ключ маршрутизации, используемый при публикации сообщений в exchange. Определяет, в какую очередь (или какие очереди) попадет сообщение на основе правил привязки (bindings). Критически важен для моделей маршрутизации direct, topic. | Строка | |
| Test Connection On Startup | testConnectionOnStartup | Если True, компонент проверяет доступность сервера (RabbitMQ) при запуске потока. Гарантирует, что соединение установлено до начала обработки сообщений. При ошибке — поток не стартует. | False | Логическое значение |
| Allow Null Body | allowNullBody | Разрешает обработку сообщений с пустым телом (null/пустая строка). Если False, сообщение с пустым payload будет отклонено или вызовет ошибку. Полезно для сигнальных сообщений или heartbeat‑механизмов. | False | Логическое значение |
| Auto Declare Producer | autoDeclareProducer | Определяет, должен ли отправитель автоматически объявлять при запуске привязку между обменом (exchange), очередью (queue) и ключом маршрутизации (routing key). | False | Логическое значение |
| Confirm | confirm | Управляет режимом ожидания подтверждения доставки сообщений для отправителя. Возможные значения:
| Auto | Список |
| Confirm Timeout | confirmTimeout | Таймаут (в мс) ожидания подтверждения доставки при включенном Confirm. Если подтверждение не получено за это время, считается, что отправка не удалась. | 5000 (5 с) | Целое число |
| Reply Timeout | replyTimeout | Таймаут (в мс) ожидания ответа при использовании паттерна inOut. Если ответ не получен за указанное время, генерируется ошибка таймаута. При использовании отрицательного значения - таймаут считается бесконечным. | 30000 (30 с) | Целое число |
| Skip Bind Queue | skipBindQueue | Если True, пропускает операцию привязки очереди (queue bind) к exchange. Используется, если привязка уже настроена вручную или через другой механизм. | False | Логическое значение |
| Skip Declare Exchange | skipDeclareExchang | Если True, пропускает объявление exchange на сервере. Предполагает, что exchange уже существует. | False | Логическое значение |
| Skip Declare Queue | skipDeclareQueue | Если True, пропускает объявление очереди на сервере. Предполагает, что очередь уже создана. Полезно для подключения к существующим очередям. | False | Логическое значение |
| Use Publisher Connection | usePublisherConnection | Определяет, использовать ли отдельное соединение для отправителей (publishers) и получателей (consumers). Возможные значения:
| False | Логическое значение |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Lazy Start Producer | lazyStartProducer | Определяет, будет ли отправитель запускаться только при обработке первого сообщения, а не при старте потока. Если установлено значение True, запуск отправителя откладывается до момента получения первого сообщения. | False | Логическое значение |
| Args | args | Позволяет задать аргументы конфигурации для различных концепций RabbitMQ. Аргументы передаются в формате «префикс.ключ=значение». Возможные значения:
queue.x-message-ttl=60000 задает время жизни сообщений в очереди (TTL) — 60 000 мс (60 секунд). | Строка | |
| Message Converter | messageConverter | Определяет класс‑конвертер, отвечающий за преобразование байтового представления сообщения в объектную модель (и обратно) на границах ESB (при приеме/отсылке). Отвечает за:
| Строка | |
| Message Properties Converter | messagePropertiesConverter | Определяет конвертер для преобразования свойств сообщения между внешним представлением и внутренней моделью Bercut ESB. Возможные значения для преобразования:
DefaultMessagePropertiesConverter — стандартный конвертер, поддерживающий базовые типы. | Строка | |
| Synchronous | synchronous | Определяет режим обработки сообщения:
| False | Логическое значение |
| Pattern | pattern | Шаблон взаимодействия (Exchange Pattern) для обмена сообщениями. Определяет направление потока данных между его компонентами. Возможные значения:
| Список | |
| Disabled | disabled | Определяет, будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |