Библиотека маршрутов

В разделе Библиотека маршрутов вы можете создавать и настраивать различные библиотеки маршрутов для дальнейшего использования в интеграциях.

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

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

  • QUARTZ
    Маршруты, которые используют планировщик задач QUARTZ для запуска процессов по расписанию.

  • ROUTE-CALLABLE
    Динамически создаваемые маршруты, которые можно вызывать программно.

  • TIMER
    Маршруты, запускающиеся через регулярные интервалы времени.

Создание библиотеки маршрутов

add route lib
  1. Чтобы создать библиотеку маршрутов, перейдите в раздел Библиотека маршрутов и нажмите кнопку Add Route Library. После этого вам будет предложено заполнить следующие параметры:

    add route general
    • General

      • *Factory: Идентификатор фабрики для данной библиотеки маршрутов. Обязательное поле с предустановленным значением — route-library.

      • *Object Id: Обязательное поле. Идентификатор библиотеки маршрутов.

      • Display Name: Отображаемое имя библиотеки маршрутов. Необязательное поле.

      • Description: Необязательное поле. Краткое описание.

        add route redelivery
    • Redelivery policy

      • Настройка обработки ошибок и повторной доставки сообщений. Подробнее ознакомиться можно здесь.

        add route routes
        library route
    • Routes

      • Раздел Routes позволяет создавать и настраивать различные типы маршрутов для обработки сообщений. Добавление маршрутов.

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

    library01 create
    library01

Добавление маршрутов

  1. Для добавления маршрута выберите нужную библиотеку, перейдите в раздел Маршруты и нажмите кнопку Add Route.

    addroute button

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

    addroute
  2. Далее выберите подходящий тип маршрута из предложенного списка доступных вариантов:

    • AGGREGATOR

      • При агрегации по телу сообщения (GROUPED :: BODY) заголовки второго и последующих сообщений теряются;

      • Идентификатор сообщения (логирующий ключ) берется из первого сообщения;

      • Свойства exchangeProperties после работы агрегатора с использованием стратегий JDBC/Postgre/Ignite уничтожаются.

      aggregator route
    • QUARTZ

      В настоящее время, если в библиотеке маршрутов настроено несколько маршрутов Quartz, значение параметра Auto Start Scheduler, установленное в первом маршруте, применяется ко всем остальным. Даже если в последующих маршрутах указаны другие значения, они будут следовать настройке первого маршрута. Чтобы изменить поведение всех маршрутов, необходимо задать одинаковое значение Auto Start Scheduler для каждого из них. В будущем будет реализована возможность индивидуальной настройки параметра Auto Start Scheduler для каждого маршрута.

    quartz route
  3. После заполнения всех обязательных полей, нажмите кнопку Add для добавления маршрута в библиотеку.

Пример создания маршрута:

Рассмотрим пример создания маршрута Aggregator в библиотеке маршрутов с последующим вызовом маршрута.

  1. Заполняем обязательное поле Route ID значением aggregator-01

    agg routeid
  2. Заполняем обязательное поле Correlation Expression значением ${headers.NTX_correlation_id}

    agg correlation expression
  3. Заполняем обязательные поля:

    agg repo strategy size1
    • Aggregation Repository Ref

      agg repo
    • Strategy Ref

      agg strategy

    Доступные стратегии:

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

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

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

        strategy delimeter
  4. В параметре Completion Size указываем количество сообщений для завершения агрегации - 2

    agg repo strategy size2
  5. Устанавливаем значение ASYNC в глобальном режиме вызова маршрута в разделе main

    callable main
  6. Нажимаем кнопку Add для добавления маршрута

    agg add
  7. Сохраняем добавленный в библиотеку маршрут, для этого нажимаем на кнопку Save all

    agg saveall
  8. Маршрут успешно сохранен в библиотеке

    agg list

Пример вызова маршрута:

Для вызова маршрута используется кастомный тег <m:call-route library="" name="" async=""/>

Пример конфигурации маршрута для вызова маршрута aggregator-01:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">
<setProperty name="NTX_profile_in_preRouted">
<constant>true</constant>
</setProperty>

<setHeader name="NTX_correlation_id"><constant>example</constant></setHeader>
<m:call-route library="library-01" name="aggregator-01" async="true"/>

</entaxy:object-route>

В этом примере, когда вы вызываете маршрут aggregator-01, важно установить значение заголовка NTX_correlation_id, которое используется в Correlation Expression маршрута.

agg correlation expression

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

При установке значения async важно проверить настройки вызываемого маршрута, чтобы убедиться, что режимы вызова соответствуют выставленным параметрам:

agg main
  • Global call mode: none, sync, async или both. Определяет метод вызова маршрута для всех сущностей в системе Entaxy.

  • Local call mode: none, sync, async или both Определяет метод вызова маршрута только для текущей сущности в системе Entaxy.

Управление библиотеками маршрутов

Остановить библиотеку маршрутов

  1. Перейдите в раздел Библиотеки маршрутов чтобы увидеть все добавленные библиотеки.

  2. Напротив выбранной библиотеки нажмите кнопку Stop. Библиотека маршрутов будет остановлена.

  3. Появится подтверждающее сообщение о том, что операция выполнена успешно: 'Operation Succeeded!'.

  4. В столбце 'Status' должно отображаться 'Resolved', подтверждая успешную остановку.

    route lib resolved

Запустить библиотеку маршрутов

  1. Перейдите в раздел Библиотеки маршрутов чтобы увидеть все добавленные библиотеки.

  2. Нажмите кнопку Start. Библиотека маршрутов будет запущена.

  3. Появится подтверждающее сообщение о том, что операция выполнена успешно: 'Operation Succeeded!'.

  4. В столбце 'Status' должно отображаться 'Active', подтверждая успешный запуск.

    route lib active

Удалить библиотеку маршрутов

  1. Перейдите в раздел Библиотеки маршрутов чтобы увидеть все добавленные библиотеки.

  2. Нажмите кнопку Uninstall. Появится сообщение с просьбой подтвердить удаление библиотеки маршрутов.

  3. Убедитесь, что вы действительно хотите удалить библиотеку, так как эту операцию нельзя отменить.

  4. В случае подтверждения появится сообщение о том, что операция выполнена успешно: 'Operation Succeeded!'.

  5. Библиотека будет удалена и больше не будет отображаться в списке библиотек.

Сохранить изменения в маршруте

lib route saveall
  • Save all - сохраняет все изменения, сделанные во всей библиотеке маршрутов, включая изменения в текущем маршруте и других маршрутах библиотеки;

  • Save - сохраняет только изменения текущего маршрута. Требует дополнительного сохранения изменений в библиотеке маршрутов.

Управление маршрутами

Добавление маршрута в библиотеку маршрутов

Для добавления маршрута в библиотеку маршрутов перейдите в подраздел Маршруты, нажмите кнопку Add Route и добавьте нужный маршрут.

При внесении изменений в существующий маршрут или добавлении новых маршрутов в библиотеку необходимо сохранить эти изменения, нажав кнопку Save в библиотеке маршрутов или кнопку Save all непосредственно в самом маршруте.

route save

Удалить маршрут

  1. В выбранной библиотеке маршрутов перейдите в подраздел Маршруты, чтобы увидеть все добавленные маршруты;

  2. Напротив выбранного маршрута нажмите кнопку Remove;

  3. Поле Status маршрута изменится на Active (to removal) и название маршрута в дереве меню будет перечеркнуто;

    active to removal
  4. Для окончательного удаления маршрута перейдите в библиотеку маршрутов и сохраните изменения.

Восстановить маршрут

  1. Если маршрут был помечен для удаления (Status - Active (to removal)), но изменения не были сохранены в библиотеке маршрутов, для восстановления маршрута нажмите кнопку Restore напротив маршрута.

  2. Статус маршрута изменится на Active, и маршрут будет возвращен в активный статус.