Доступные типы маршрутов

AGGREGATOR: Маршрут для агрегирования нескольких сообщений на основе заданных критериев.

QUARTZ: Маршрут используется для планирования задач с помощью Quartz Scheduler. Он позволяет запускать маршруты на основе расписания, которое можно настроить с помощью Cron выражений или простых интервалов времени.

ROUTE-CALLABLE: Маршрут для выполнения настраиваемых логик и операций, позволяющий вызывать различные функции и взаимодействовать с внешними системами.

TIMER: Маршрут предназначен для создания периодических событий. Он позволяет запускать маршруты через заданные интервалы времени, такие как каждая секунда, минута или час, без необходимости использования внешних планировщиков или триггеров.

AGGREGATOR

При настройке маршрута агрегатора необходимо указать хотя бы одно из следующих полей:

  • Completion Predicate: Предикат для указания завершения агрегированного обмена.

  • Completion Timeout Expression: Выражение для задания времени ожидания завершения агрегации.

  • Completion Size Expression: Выражение, определяющее количество сообщений, после достижения которого агрегация будет завершена.

Эти поля не являются обязательными, но по крайней мере одно из них должно быть задано для корректного создания маршрута.

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для маршрута агрегатора. Предустановленное значение - AGGREGATOR.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

On-complete route

Маршрут, который будет выполнен после завершения агрегации.

Correlation Expression

Обязательный параметр. Выражение, используемое для вычисления ключа корреляции для агрегации сообщений. Сообщения с одинаковым ключом корреляции будут агрегироваться вместе. Если ключ корреляции не может быть применен, будет сгенерировано исключение. Вы можете отключить это с помощью параметра ignoreBadCorrelationKeys.

Completion Predicate

Предикат для указания завершения агрегированного обмена. Если не задан, будет использован объект AggregationStrategy как completionPredicate, если он реализует Predicate.

Completion Timeout Expression

Время в миллисекундах, в течение которого агрегированное сообщение должно оставаться неактивным до завершения (тайм-аут). Может быть задано как фиксированное значение или с помощью выражения для динамической оценки тайм-аута. Если заданы оба параметра, Camel будет использовать фиксированное значение, если результат выражения равен null или 0. Не может использоваться одновременно с completionInterval. По умолчанию проверка тайм-аута выполняется каждую секунду; частоту проверок можно настроить с помощью параметра completionTimeoutCheckerInterval. Тайм-аут приблизительный и может не сработать точно по истечении указанного времени. Не рекомендуется использовать очень низкие значения тайм-аута или частоты проверок.

Parallel Processing

Когда агрегация сообщений завершается, они передаются дальше. Этот параметр определяет, будет ли Camel использовать пул потоков для параллельной обработки сообщений. Если пользовательский пул не указан, Camel создаст стандартный пул с 10 потоками.

Optimistic Locking

Включает или отключает оптимистичное блокирование.

Aggregation Repository Ref

Устанавливает пользовательский агрегатный репозиторий. По умолчанию используется org.apache.camel.processor.aggregate.MemoryAggregationRepository.

Strategy Ref

Стратегии агрегации:

Factory:

GROUPED :: BODY - Агрегирует входящие сообщения в один объект, который содержит все агрегированные тела сообщений в виде списка типа Object в теле сообщения.

String - Агрегирует входящие сообщения в один объект, который содержит все агрегированные тела сообщений в виде строки в теле сообщения.

Delimiter - Разделитель, с помощью которого выполняется объединение.

Completion On New Correlation Group

Завершает агрегацию при поступлении новой корреляционной группы.

Eager Check Completion

Включает проверку завершения агрегации с использованием входящего обмена, а не агрегированного сообщения.

Ignore Invalid Correlation Keys

Если корреляционный ключ не может быть применен, он будет проигнорирован с записью в журнале с уровнем DEBUG, а входящий обмен будет проигнорирован.

Close Correlation Key On Completion

Закрывает ключ корреляции после завершения агрегации. Если позднее поступят сообщения с ключом, который уже был закрыт, они будут отклонены, и будет сгенерировано исключение ClosedCorrelationKeyException.

Discard On Completion Timeout

Удаляет агрегированное сообщение по истечении времени завершения.

Discard On Aggregation Failure

Удаляет агрегированное сообщение, если агрегация завершилась с ошибкой (из-за исключения из AggregationStrategy). Частично агрегированное сообщение будет отброшено и не отправлено из агрегатора. Не может использоваться одновременно с completionFromBatchConsumer.

Complete All On Stop

Завершает обработку всех текущих и частично агрегированных сообщений при остановке маршрута.

Main

Параметр Описание

Global call mode

Определяет способ вызова маршрута (для всех сущностей в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

Local call mode

Определяет способ вызова маршрута (только для текущей сущности в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

Completion

Completion Size Expression Выражение, определяющее количество сообщений, после достижения которого агрегация завершится.

Completion Size

Количество сообщений для завершения агрегации. Может быть задано как фиксированное значение или с помощью выражения для динамической оценки размера. Если заданы оба значения, будет использовано фиксированное значение, если результат выражения равен null или 0.

Completion Interval

Время в миллисекундах, через которое агрегатор завершает обработку агрегированных сообщений. Camel выполняет фоновую задачу, которая срабатывает через указанный интервал. Не может использоваться одновременно с completionTimeout; необходимо выбрать один из двух.

Completion Timeout

Время в миллисекундах, в течение которого агрегированное сообщение должно оставаться неактивным до завершения (тайм-аут). Может быть задано как фиксированное значение или с помощью выражения для динамической оценки тайм-аута. Если заданы оба параметра, Camel будет использовать фиксированное значение, если результат выражения равен null или 0. Не может использоваться одновременно с completionInterval. По умолчанию проверка тайм-аута выполняется каждую секунду; частоту проверок можно настроить с помощью параметра completionTimeoutCheckerInterval. Тайм-аут приблизительный и может не сработать точно по истечении указанного времени. Не рекомендуется использовать слишком низкие значения тайм-аута или частоты проверок.

Completion From Batch Consumer

Включает режим агрегации, при котором сообщения собираются от org.apache.camel.BatchConsumer. Агрегация завершается, когда BatchConsumer сообщает о завершении обработки пакета сообщений, проверяя свойство org.apache.camel.Exchange#BATCH_COMPLETE. Не может использоваться одновременно с discardOnAggregationFailure.

Force Completion On Stop

Принудительно завершает агрегацию сообщений при остановке маршрута.

QUARTZ

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - QUARTZ.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route content

Редактирование маршрута.

Group Name

Имя группы, которое будет использоваться для Quartz. Комбинация имени группы и имени таймера должна быть уникальной.

Trigger Name

Имя таймера, которое будет использоваться для Quartz. Комбинация имени таймера и имени группы должна быть уникальной.

Consumer

Параметр Описание

Bridge Error Handler

Позволяет перенаправлять исключения, возникающие во время работы потребителя в систему маршрутизации ошибок Camel. Это означает, что любые исключения, которые по умолчанию обрабатываются стандартным обработчиком исключений (org.apache.camel.spi.ExceptionHandler) и логируются на уровне WARN или ERROR, теперь будут обрабатываться как сообщения и управляться через механизмы обработки ошибок.

Prefix Job Name With Endpoint Id

Определяет, нужно ли добавлять идентификатор конечной точки в имя задания Quartz. По умолчанию установлено значение false.

Cron

Указывает cron-выражение для определения времени триггера. Используйте + вместо пробелов, например, 0+0/1++1/1++?+* (каждую минуту). Значение по умолчанию — каждую секунду.

Delete Job

Если установлено значение true, задание автоматически удаляется, когда маршрут останавливается. Если установлено значение false, задание останется в планировщике. При значении false также возможно повторное использование заранее настроенного триггера с URI Camel, убедитесь, что имена совпадают. Обратите внимание, что нельзя одновременно устанавливать deleteJob и pauseJob в true.

Durable Job

Определяет, должно ли задание оставаться сохраненным после того, как не останется триггеров, указывающих на него.

Pause Job

Если установлено значение true, триггер автоматически становится на паузу, когда маршрут останавливается. Если установлено значение false, триггер останется в планировщике. При значении false также возможно повторное использование заранее настроенного триггера с URI Camel, убедитесь, что имена совпадают. Обратите внимание, что нельзя одновременно устанавливать deleteJob и pauseJob в true.

Recoverable Job

Указывает планировщику, следует ли повторно выполнять задание в случае возникновения ситуации "восстановления" или "переключения на резервный режим".

Stateful

Использует Quartz PersistJobDataAfterExecution и DisallowConcurrentExecution вместо стандартного задания.

Advanced

Параметр Описание

Basic Property Binding

Определяет, следует ли использовать основное связывание свойств (Camel 2.x) или более новую версию связывания свойств с дополнительными возможностями.

Synchronous

Устанавливает, следует ли использовать строго синхронную обработку, или Camel может использовать асинхронную обработку (если это поддерживается).

Using Fixed Camel Context Name

Если значение равно true, JobDataMap использует имя CamelContext напрямую для ссылки на CamelContext, если значение равно false, JobDataMap использует имя управления CamelContext, которое может быть изменено во время развертывания.

Scheduler

Параметр Описание

Auto Start Scheduler

Должен ли планировщик автоматически запускаться. По умолчанию эта опция установлена в true.

Start Delayed Seconds

Задержка старта в секундах. Время ожидания перед запуском планировщика Quartz.

Fire Now

Немедленный запуск. Если установлено в true, триггер сработает сразу после запуска маршрута при использовании SimpleTrigger.

Trigger Start Delay

Время (миллисекунды), на которое следует отложить начало работы триггера, если планировщик уже запущен. Эта задержка позволяет убедиться, что конечная точка маршрута полностью готова к обработке, прежде чем триггер начнет выполнение задания.

Consumer (advanced)

Параметр Описание

Exchange Pattern

Шаблон обмена сообщений определяет тип взаимодействия между потребителем и поставщиком в контексте маршрутизации сообщений:

InOnly — Потребитель отправляет запрос без ожидания ответа от поставщика. Этот шаблон подходит для сценариев, когда важно только доставить сообщение, а подтверждение его получения не требуется.

InOut — Потребитель отправляет запрос и ожидает получить ответ от поставщика. Это стандартный шаблон обмена для операций, требующих подтверждения успешного выполнения или получения результата обработки запроса.

InOptionalOut — Потребитель отправляет запрос и может ожидать ответ, но получение ответа является необязательным. Этот шаблон используется в случаях, когда ответ на запрос может быть полезен, но не критически важен для продолжения работы потребителя.

hawtio quartz

Quartz - информационный раздел, отображающий данные об экземплярах планировщика, задачах и триггерах, установленных ранее и функционирующих на данный момент.

Функционал раздела поставляется web консолью Hawtio и его использование, на данный момент, возможно только в информационных целях. Редактирование задач планировщика производится только через разделы Entaxy ION.

ROUTE-CALLABLE

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - ROUTE :: CALLABLE.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route

Редактирование маршрута.

Main

Параметр Описание

Global call mode

Определяет способ вызова маршрута (для всех сущностей в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

Local call mode

Определяет способ вызова маршрута (только для текущей сущности в системе Entaxy):

SYNC - Синхронный вызов, ожидающий завершения обработки;
ASYNC - Асинхронный вызов, не ожидающий завершения обработки;
BOTH - Оба варианта (синхронный и асинхронный).

TIMER

Основные параметры (General)

Параметр Описание

Factory

Идентификатор фабрики для вызываемого маршрута. Предустановленное значение - TIMER.

Display name

Отображаемое имя маршрута. Указывается значение по умолчанию, если не указано явно.

Route ID

Уникальный идентификатор маршрута.

Route properties

Дополнительные произвольные метаданные.

Route content

Редактирование маршрута.

Timer Name

Имя таймера.

Consumer

Параметр Описание

Bridge Error Handler

Позволяет перенаправлять исключения, возникающие во время работы потребителя в систему маршрутизации ошибок Camel. Это означает, что любые исключения, которые по умолчанию обрабатываются стандартным обработчиком исключений (org.apache.camel.spi.ExceptionHandler) и логируются на уровне WARN или ERROR, теперь будут обрабатываться как сообщения и управляться через механизмы обработки ошибок.

Delay

Задержка перед срабатыванием первого события. Значение по умолчанию - 1 секунда.

Fixed Rate

Определяет, что события будут запускаться через равные промежутки времени, разделенные указанным периодом.

Include Metadata

Определяет, следует ли включать в сообщение метаданные, такие как время срабатывания, имя таймера, количество срабатываний и т. д.

Period

Если значение больше 0, генерирует периодические события каждый раз через указанный интервал времени. Значение по умолчанию - 1 секунда.

Repeat Count

Задает максимальное количество срабатываний. Например, если установить значение 1, таймер сработает только один раз. Если установить значение 5, таймер сработает пять раз. Значение 0 или отрицательное значение означает, что таймер будет срабатывать бесконечно.

Advanced

Параметр Описание

Basic Property Binding

Определяет, следует ли применять базовый метод связывания свойств, доступный в Apache Camel начиная с версии 2.x, или использовать более продвинутый вариант, который предлагает расширенные возможности и функциональность.

Daemon

Указывает, запускается ли поток, связанный с конечной точкой таймера, в качестве демона. Значение по умолчанию — true.

Pattern

Позволяет указать пользовательский шаблон формата даты, используемый для установки параметра времени через синтаксис URI.

Synchronous

Устанавливает, следует ли использовать строго синхронную обработку, или Camel может использовать асинхронную обработку (если это поддерживается).

Time

Дата в формате java.util.Date, для которой должно быть сгенерировано первое событие. Если используется URI, ожидается следующий шаблон: yyyy-MM-dd HH:mm:ss или yyyy-MM-dd’T’HH:mm:ss.

Consumer (advanced)

Параметр Описание

Exchange Pattern

Шаблон обмена сообщений определяет тип взаимодействия между потребителем и поставщиком в контексте маршрутизации сообщений:

InOnly — Потребитель отправляет запрос без ожидания ответа от поставщика. Этот шаблон подходит для сценариев, когда важно только доставить сообщение, а подтверждение его получения не требуется.

InOut — Потребитель отправляет запрос и ожидает получить ответ от поставщика. Это стандартный шаблон обмена для операций, требующих подтверждения успешного выполнения или получения результата обработки запроса.

InOptionalOut — Потребитель отправляет запрос и может ожидать ответ, но получение ответа является необязательным. Этот шаблон используется в случаях, когда ответ на запрос может быть полезен, но не критически важен для продолжения работы потребителя.