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

AMQP

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

Блок AMQP позволяет осуществлять обмен сообщениями по протоколу AMQP с использованием клиента Apache Qpid.

AMQP (Advanced Message Queuing Protocol) — открытый стандарт прикладного уровня для передачи сообщений между компонентами распределенной системы. Протокол обеспечивает надежную, гарантированную доставку сообщений, поддерживает маршрутизацию по правилам и гарантирует транзакционность операций.

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

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

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

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

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

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

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Dynamic EndpointdynamicEndpointПараметр позволяет включить встроенную функциональность динамического определения вызываемой конечной точки. При включении параметра структура блока меняется таким образом, что в коде вместо определения to проставляется toD, а значение самого вызываемого ресурса может собираться из переменной, например ${header.foo}.TrueЛогическое значение
ConnectionconnectionОбязательный параметр
Этот параметр позволяет выбрать предсозданное подключение или создать новое с помощью визарда Connection Manager.
Список
DescriptiondescriptionКраткое описание блока.Строка
Destination NamedestinationNameОбязательный параметр
Задает "адрес" доставки AMQP‑сообщений. Он определяет конкретную очередь (queue) или тему (topic) на брокере, куда отправляются или откуда забираются сообщения. Правильная настройка этого параметра критически важна для корректной работы интеграционных потоков.
Строка
Client IdclientIdИдентификатор клиента – это указанная пользователем строка, отправляемая в каждом запросе для отслеживания вызовов. Она должна логически идентифицировать приложение, отправляющее запрос. Введенное значение должно быть уникальным в системе.Строка
Disable Reply TodisableReplyToУправляет созданием заголовка ReplyTo в исходящем сообщении. Если установлено значение True, компонент отключает автоматическое формирование заголовка Reply‑To, который обычно указывает адрес для ответа (например, очередь или endpoint). Это предотвращает неявную обратную связь и позволяет явно контролировать маршрутизацию ответов. Если False, заголовок Reply‑To формируется автоматически на основе контекста потока (например, копируется из входящего сообщения или задается по умолчанию).FalseЛогическое значение
Durable Subscription NamedurableSubscriptionNameИмя постоянной подписки (сохраняется на брокере при отключении клиента). Чтобы пользоваться этой опцией, необходимо задать значение параметру Client IDСтрока
Jms Message TypejmsMessageTypeПозволяет принудительно использовать определенную реализацию jakarta.jms.Message для отправки сообщений JMS. По умолчанию тип сообщения, который будет использоваться, определяется исходя из типа In body.
Возможные значения:
  • Bytes
  • Map
  • Object
  • Stream
  • Text
Список
Reply ToreplyToЗадает явного адресата ReplyTo, переопределяя значение Message.getJMSReplyTo(), полученное в исходном сообщении.Строка
Test Connection On StartuptestConnectionOnStartupЕсли True, компонент проверяет доступность AMQP‑сервера при запуске потока. Гарантирует, что соединение установлено до начала обработки сообщений. При ошибке — поток не стартует.FalseЛогическое значение
Delivery DelaydeliveryDelayУстанавливает задержку доставки, которая будет использоваться для отправки вызовов JMS. Для этого параметра требуется брокер, совместимый с JMS 2.0.-1Целое число
Delivery ModedeliveryModeУказывает используемый режим доставки. Доступные значения определены в jakarta.jms.Delivermode.
Возможные значения:
  • NON_PERSISTENT = 1
  • PERSISTENT = 2.
Список
Delivery PersistentdeliveryPersistentЗадает, используется ли непрерывная доставка по умолчанию.TrueЛогическое значение
Explicit Qos EnabledexplicitQosEnabledОпределяет, следует ли использовать при отправке сообщений свойства Delivery Mode, Priority или Time To Live. Параметры Delivery Mode, Priority и Time To Live применяются к текущей конечной точке.FalseЛогическое значение
Format Date Headers To Iso8601formatDateHeadersToIso8601Определяет, следует ли форматировать даты JMS в соответствии со стандартом ISO 8601.FalseЛогическое значение
Preserve Message QospreserveMessageQosВключает отправку сообщений с использованием настроек QoS, указанных в сообщении, а не настроек QoS на конечной точке JMS. Следующие три заголовка обрабатываются: JMSPriority, JMSDeliveryMode и JMSExpiration. Вы можете указать все или только некоторые из них. Если они не указаны, то будут применены значения из конечной точки. Таким образом, при использовании этой опции заголовки переопределяют значения из конечной точки. Опция Explicit Qos Enabled, напротив, будет использовать только параметры, установленные в конечной точке, а не значения из заголовка сообщения.FalseЛогическое значение
PrioritypriorityПриоритет сообщения при отправке (где 1 — самый низкий приоритет, а 9 — самый высокий). Для того чтобы этот параметр работал, также должна быть включена опция Explicit Qos Enabled.
Возможные значения:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
4Список
Reply To Concurrent ConsumersreplyToConcurrentConsumersМаксимальное количество одновременных потребителей при использовании запроса/ответа через JMS. Также для управления динамическим увеличением/уменьшением масштабирования потоков применяется параметр Max Messages Per Task.1Целое число
Reply To Max Concurrent ConsumersreplyToMaxConcurrentConsumersМаксимальное количество одновременных пользователей при использовании запроса/ответа через JMS. Также для управления динамическим увеличением/уменьшением масштабирования потоков применяется параметр Max Messages Per Task.Целое число
Reply To On Timeout Max Concurrent ConsumersreplyToOnTimeoutMaxConcurrentConsumersУказывает максимальное количество одновременных пользователей для продолжения маршрутизации по истечении времени ожидания при использовании запроса/ответа через JMS.1Целое число
Reply To OverridereplyToOverrideЯвное указание адресата ReplyTo в сообщении JMS, которое переопределяет параметр replyTo. Это полезно, если вы хотите переслать сообщение в удаленную очередь и получить ответное сообщение от адресата ReplyTo.Строка
Reply To TypereplyToTypeЯвное определение того, какой тип стратегии будет использоваться для очередей replyTo при выполнении запроса/ответа через JMS. По умолчанию будут использоваться временные очереди. Однако, если replyTo задан, то по умолчанию используется общий доступ. Этот параметр позволяет использовать эксклюзивные очереди вместо общих.
Возможные значения:
  • Temporary
  • Shared
  • Exclusive
Список
Request TimeoutrequestTimeoutВремя ожидания ответа при использовании InOut Exchange Pattern (в миллисекундах). Значение по умолчанию равно 20 секундам. Вы можете включить заголовок CamelJmsRequestTimeout, чтобы переопределить это значение тайм‑аута, настроенное для конечной точки, и, таким образом, задать индивидуальные значения тайм‑аута для каждого сообщения. Смотрите также параметр Request Timeout Checker Interval.20000Длинное целое число
Time To LivetimeToLiveПри отправке сообщений указывает время жизни сообщения в миллисекундах.-1Целое число
Error Handler Logging LevelerrorHandlerLoggingLevelУровень логирования ErrorHandler по умолчанию для логирования неперехваченных исключений.
Возможные значения:
  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF
WARNСписок
Error Handler Log Stack TraceerrorHandlerLogStackTraceОпределяет, следует ли логировать трассировку стека или нет, с помощью обработчика ошибок по умолчанию.TrueЛогическое значение
TransactedtransactedВключает транзакционный режим.FalseЛогическое значение
Transacted In OuttransactedInOutУказывает, будут ли операции InOut (ответ на запрос) по умолчанию использоваться в режиме транзакций.FalseЛогическое значение

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

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Allow Additional HeadersallowAdditionalHeadersРазрешает использование дополнительных заголовков, которые могут иметь недопустимые значения в соответствии со спецификацией JMS. Можно указать несколько имен заголовков через запятую — они будут использоваться как суффикс для сопоставления с подстановочными знаками.Строка
Allow Null BodyallowNullBodyОпределяет, разрешено ли отправлять сообщения без текста. Если параметр имеет значение False, а текст сообщения равен null, генерируется исключение JMSException.TrueЛогическое значение
Always Copy MessagealwaysCopyMessageЕсли значение True, копия сообщения JMS создается всегда, когда оно передается производителю для отправки. Копирование необходимо в некоторых ситуациях — например, когда задано значение ReplyToDestinationSelectorName.
Примечание:
Если задан параметр ReplyToDestinationSelectorName, то значение AlwaysCopyMessage будет определяться как True.
FalseЛогическое значение
Correlation PropertycorrelationPropertyИспользуется при шаблоне обмена InOut: задает свойство JMS вместо стандартного JMSCorrelationID для корреляции сообщений. Если установлено, сообщения коррелируются исключительно по значению этого свойства, а JMSCorrelationID игнорируется.Строка
Disable Time To LivedisableTimeToLiveПри включении отключает время жизни сообщения принудительно.FalseЛогическое значение
Force Send Original MessageforceSendOriginalMessageЕсли MapJmsMessage=False, при изменении заголовков (get/set) во время потока создается новое JMS‑сообщение для отправки новому получателю. Если параметр установлен в True, отправляется исходное полученное JMS‑сообщение.FalseЛогическое значение
Include Sent JMSMessage IDincludeSentJMSMessageIDПрименяется только при отправке получателю JMS с использованием InOnly («отправить и забыть»). При включении добавляет в данные потока фактический идентификатор JMSMessageID, использованный клиентом JMS при отправке сообщения.FalseЛогическое значение
Lazy Start ProducerlazyStartProducerОпределяет, должен ли отправитель стартовать в отложенном режиме (при получении первого сообщения). Отложенный запуск полезен, если запуск отправителя может завершиться неудачей и привести к сбою при старте потока. При отложенном запуске сбой можно обработать во время маршрутизации сообщений с помощью обработчиков ошибок.
Примечание:
При обработке первого сообщения создание и старт отправителя могут занять время и увеличить общее время обработки.
FalseЛогическое значение
Reply To Cache Level NamereplyToCacheLevelNameУстанавливает уровень кэширования по имени для получателя ответа при выполнении запроса/ответа через JMS. Применяется только при использовании фиксированных очередей ответов (не временных).По умолчанию: CACHE_CONSUMER для эксклюзивного/общего доступа с заданным ReplyToSelectorName и CACHE_SESSION для общего доступа без ReplyToSelectorName.При использовании временных очередей CACHE_NONE не разрешен — следует использовать CACHE_CONSUMER или CACHE_SESSION.
Возможные значения:
  • CACHE_AUTO
  • CACHE_CONNECTION
  • CACHE_CONSUMER
  • CACHE_NONE
  • CACHE_SESSION
Список
Reply To Destination Selector NamereplyToDestinationSelectorNameУстанавливает селектор JMS с фиксированным именем. Используется для фильтрации собственных ответов от других при работе с общей очередью (если не используется временная очередь ответов).Строка
Stream Message Type EnabledstreamMessageTypeEnabledОпределяет, включен ли тип StreamMessage. Полезная нагрузка потокового типа (файлы, InputStream и т. д.) отправляется либо как BytesMessage, либо как StreamMessage. Параметр задает, какой тип использовать.По умолчанию используется BytesMessage (вся полезная нагрузка считывается в память). При включении полезная нагрузка считывается и записывается в StreamMessage частями.FalseЛогическое значение
Allow Serialized HeadersallowSerializedHeadersОпределяет, включать ли сериализованные заголовки. Применяется, только если transferExchange=True. Требует, чтобы объекты были сериализуемыми. Несериализуемые объекты исключаются и регистрируются на уровне WARN.FalseЛогическое значение
Artemis Streaming EnabledartemisStreamingEnabledВключает оптимизацию для режима потоковой передачи Apache Artemis. Снижает нагрузку на память при использовании Artemis с типами потоковых сообщений JMS. Должен быть включен только при использовании Apache Artemis.FalseЛогическое значение
Async Start ListenerasyncStartListenerОпределяет, запускать ли асинхронный листенер сообщений JmsConsumer при старте потока. Если JmsConsumer не может установить соединение с удаленным JMS‑брокером, он может заблокироваться при повторных попытках. Установка параметра в True разрешает запуск потоков, пока JmsConsumer подключается к брокеру в асинхронном режиме.Если соединение не удалось установить, регистрируется исключение на уровне WARN, получатель не получает сообщения — поток можно перезапустить для повторной попытки.FalseЛогическое значение
Async Stop ListenerasyncStopListenerОпределяет, следует ли останавливать листенер сообщений JmsConsumer асинхронно при остановке потока.FalseЛогическое значение
Destination ResolverdestinationResolverПодключаемый интерфейс стратегии для разрешения назначений JMS.Строка
Error HandlererrorHandlerОбработчик ошибок, вызываемый при возникновении неперехваченных исключений при обработке сообщения. По умолчанию исключения регистрируются на уровне WARN, если обработчик не задан. Можно настроить уровень журнала и регистрацию трассировок стека.Строка
Exception ListenerexceptionListenerЗадает листенер исключений JMS, получающий уведомления о базовых исключениях JMS.Строка
Header Filter StrategyheaderFilterStrategyИмя пользовательской стратегии HeaderFilterStrategy для фильтрации заголовков в сообщении Camel и обратно.Строка
Idle Consumer LimitidleConsumerLimitОграничивает количество потребителей, которые могут простаивать одновременно.1Целое число
Idle Task Execution LimitidleTaskExecutionLimitОпределяет предел числа запусков в режиме ожидания задачи получения без результата. При достижении предела задача завершается и передает получение другим выполняющимся задачам (в случае динамического планирования).1Целое число
Include All JMSXPropertiesincludeAllJMSXPropertiesОпределяет, следует ли включать все свойства с префиксом JMSX при преобразовании из JMS в контекст. При True включаются такие свойства, как JMSXAppID, JMSXUserID и т. д.
Примечание:
Неприменимо при использовании пользовательской стратегии HeaderFilterStrategy.
FalseЛогическое значение
Jms Key Format StrategyjmsKeyFormatStrategyПодключаемая стратегия кодирования и декодирования ключей JMS для соответствия спецификации. Предоставляются две реализации: default (безопасное использование точек и дефисов) и passthrough (ключ остается как есть). Можно предоставить собственную реализацию (обозначение #).
Возможные значения:
  • default
  • passthrough
Список
Map Jms MessagemapJmsMessageОпределяет, будет ли полученное JMS‑сообщение автоматически сопоставляться с подходящим типом полезной нагрузки (например, jakarta.jms.TextMessage в строку).TrueЛогическое значение
Max Messages Per TaskmaxMessagesPerTaskКоличество сообщений для каждой задачи. Значение "-1" означает отсутствие ограничений. При использовании диапазона одновременных потребителей (например, min/max) параметр контролирует, насколько быстро количество потребителей будет уменьшаться при снижении нагрузки.-1Целое число
Message ConvertermessageConverterПользовательский преобразователь сообщений Spring (org.springframework.jms.support.converter.MessageConverter) для контроля сопоставления отправляемых/получаемых сообщений с jakarta.jms.Message.Строка
Message Created StrategymessageCreatedStrategyСтратегия, вызываемая при создании новых экземпляров объектов jakarta.jms.Message во время отправки сообщения JMS.Строка
Message Id EnabledmessageIdEnabledПри отправке указывает, следует ли добавлять идентификаторы сообщений (подсказка для JMS‑брокера). Если брокер принимает подсказку, идентификатор сообщения устанавливается в null; если игнорирует — присваивается уникальное значение.TrueЛогическое значение
Message Listener Container FactorymessageListenerContainerFactoryРегистрационный идентификатор messageListenerContainerFactory для определения используемого org.springframework.jms.listener.AbstractMessageListenerContainer.Строка
Message Timestamp EnabledmessageTimestampEnabledУказывает, должны ли временные метки Timestamp быть включены по умолчанию при отправке сообщений (подсказка для JMS‑брокера). Если брокер принимает подсказку, временная метка устанавливается в 0; если игнорирует — используется обычное значение.TrueЛогическое значение
Pub Sub No LocalpubSubNoLocalПри включении предотвращает получение сообщений, опубликованных тем же соединением.FalseЛогическое значение
Receive TimeoutreceiveTimeoutВремя ожидания для получения сообщений (в миллисекундах).1 000Длинное целое число
Recovery IntervalrecoveryIntervalИнтервал между попытками восстановления (например, при обновлении соединения), в миллисекундах.5 000Длинное целое число
Request Timeout Checker IntervalrequestTimeoutCheckerIntervalЗадает в миллисекундах, как часто проверять время ожидания запросов/ответов через JMS. Время ожидания определяется параметром Request Timeout.1 000Длинное целое число
SynchronoussynchronousОпределяет, следует ли строго использовать синхронную обработку.FalseЛогическое значение
Temporary Queue ResolvertemporaryQueueResolverПозволяет задать собственный распределитель для создания временных очередей. Некоторые системы обмена сообщениями предъявляют особые требования к созданию временных очередей.Строка
Transfer ExceptiontransferExceptionПри включении (и использовании обмена InOut) отправляет исключение обратно в ответ в виде jakarta.jms.ObjectMessage, если на стороне потребителя произошел сбой. Если клиент — Camel, возвращенное исключение повторно генерируется.
Примечание:
Имеет приоритет над TransferExchange. Перехваченное исключение должно быть сериализуемым. Исходное исключение может быть преобразовано во внешнее.
FalseЛогическое значение
Transfer ExchangetransferExchangeПозволяет передавать не только тело сообщения и заголовки, но и все данные объекта Exchange, проходящего через блок JMS (поля: In body, Out body, Fault body, In headers, Out headers, Fault headers, свойства exchange, exchange exception).Требуется, чтобы объекты были сериализуемыми. Несериализуемые объекты исключаются и регистрируются на уровне WARN. Опцию нужно включить на обеих сторонах: отправителя и потребителя.FalseЛогическое значение
Use Message ID As Correlation IDuseMessageIDAsCorrelationIDУказывает, следует ли всегда использовать JMSMessageID в качестве JMSCorrelationID для входящих сообщений.FalseЛогическое значение
Wait For Provision Correlation To Be Updated CounterwaitForProvisionCorrelationToBeUpdatedCounterКоличество попыток обновления временного идентификатора корреляции до фактического идентификатора при выполнении запроса/ответа через JMS (при включенном UseMessageIDAsCorrelationID).50Целое число
Wait For Provision Correlation To Be Updated Thread Sleeping TimewaitForProvisionCorrelation
ToBeUpdatedThreadSleepingTime
Интервал в миллисекундах для перехода в спящий режим при ожидании обновления предварительного идентификатора корреляции.100Длинное целое число
Wait For Temporary Reply To To Be Updated CounterwaitForTemporaryReplyToToBeUpdatedCounterКоличество попыток ожидания создания и готовности временной очереди replyTo при выполнении запроса/ответа через JMS.200Целое число
Wait For Temporary Reply To To Be Updated Thread Sleeping TimewaitForTemporaryReplyToToBeUpdatedThread
SleepingTime
Интервал в миллисекундах для перехода в спящий режим при ожидании готовности временной очереди ответов.100Длинное целое число
Lazy Create Transaction ManagerlazyCreateTransactionManagerПри включении создает JmsTransactionManager, если Transacted=True и не задан TransactionManager.TrueЛогическое значение
Transaction ManagertransactionManagerИспользуемый диспетчер транзакций.Строка
Transaction NametransactionNameНазвание используемой транзакции.Строка
Transaction TimeouttransactionTimeoutТайм‑аут транзакции (в секундах) при использовании режима транзакции. Значение "-1" означает отсутствие ограничений.-1Целое число
DisableddisabledДоступен только для блоков-отправителей
Определяет будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться.
FalseЛогическое значение
PatternpatternДоступен только для блоков-отправителей
Шаблон взаимодействия (Exchange Pattern) для обмена сообщениями. Определяет направление потока данных между его компонентами.
Возможные значения:
  • InOnly (однонаправленный вызов: сообщение отправляется, ответ игнорируется).
  • InOut (двунаправленный вызов: ожидается ответ от хранимой процедуры, который будет передан дальше по потоку).
Выбор шаблона влияет на то, как компонент обрабатывает результат выполнения процедуры и передает его следующему шагу потока.
Список

Параметры безопасности

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
PasswordpasswordПароль для использования в ConnectionFactory. Вы также можете настроить имя пользователя/пароль непосредственно в ConnectionFactory.Строка
UsernameusernameИмя пользователя для использования в ConnectionFactory. Вы также можете настроить имя пользователя/пароль непосредственно в ConnectionFactory.Строка