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

Entaxy обеспечивает следующую функциональность:

  1. Доступ внешних систем к шине через опубликованные сервисы (SOAP, REST и прочее);

  2. Создание, редактирование и запуск SOAP и REST сервисов через UI (поддержка WSDL и OpenAPI);

  3. Поддержка синхронного и асинхронного способа вызова служб;

  4. Защищенная шина и гарантированная доставка сообщений (поддержка транзакционной модели);

  5. Статистическая и алгоритмическая (условная, опирающаяся на значение передаваемых данных) маршрутизация;

  6. Доступ к данным из сторонних информационных систем; Готовые и специально разработанные адаптеры;

  7. Обработка и преобразование сообщений; Адаптация данных под потребности системы;

  8. Отказоустойчивая конфигурация;

  9. Разнообразные механизмы контроля и управления; Аудиты, протоколирование;

  10. Мониторинг данных и бизнес-процессов; Отслеживание и анализ работы системы;

  11. Поддержка потоков обработки ответа и пост-обработки;

  12. Создание и редактирование коннекторов и профилей;

  13. Создание и редактирование пользовательских маршрутов;

  14. Создание и редактирование выходных маршрутизаторов;

  15. Просмотр и загрузка ресурсов через UI;

  16. Управление профилем посредством интерактивной диаграммы.

Entaxy решает следующие задачи:

  1. Интеграция и обмен данными:

    • Обеспечивает эффективный обмен сообщениями и данными между приложениями и информационными системами.

    • Унифицирует взаимодействие с внешними информационными системами.

  2. Управление доступом и услугами:

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

  3. Мониторинг и анализ данных:

    • Позволяет в режиме реального времени осуществлять мониторинг интеграционных процессов.

  4. Оптимизация организационных процессов:

    • Снижает трудоемкость сбора и агрегации информации.

    • Повышает оперативность подготовки отчетов.

  5. Автоматизированная проверка данных:

    • Гарантирует надежность данных, используемых в процессе деятельности.

    • Поддерживает автоматизированную проверку данных.

  6. Уменьшение затрат на ИТ-поддержку:

    • Оптимизирует операционные издержки, связанные с ИТ-поддержкой.

  7. Гибкость и расширяемость:

    • Поддерживает различные стандарты и протоколы.

    • Обеспечивает гибкие возможности расширения функциональности.

  8. Предоставляет шаблоны интеграции корпоративных приложений для упрощения процесса интеграции.

Entaxy реализована на следующем наборе ПО:

  • ОС: AstraLinux/CentOS/Ubuntu

  • Программная платформа: Java 11 (librca / Liberica JDK / Axiom JDK)

  • СУБД : PostgreSQL / MS SQL Server

  • Платформа исполнения: Apache Karaf 4.2.9

  • Платформа интеграции: Apache Camel 3.4.5

  • Каркас реализации веб-сервисов: Apache CXF 3.3.6

  • Брокер сообщений: ActiveMQ Artemis 2.19.0

  • Система мониторинга: Prometheus, Grafana

  • Система сбора логов: Grafana, Loki

Схема развертывания

Ниже представлена схема развертывания основных компонентов шины, содержащая следующие элементы:

  1. Кластер NGINX - два узла, обеспечивающих отказоустойчивый балансировщик нагрузки, с одним виртуальным IP-адресом

  2. Кластер Karaf - в начальной конфигурации используется 2 узла, в дальнейшем схема масштабируется горизонтально. Наличие кластера обеспечивает отказоустойчивость и производительность, так как нагрузка распределяется между всеми активными узлами

  3. Кластер брокера сообщений ActiveMQ Artemis - отказоустойчивая конфигурация "активный - пассивный", в которой все транзакции активного брокера реплицируются на пассивный. При выходе из строя активного брокера, активным становится пассивный. Все вызовы брокера сообщений осуществляются по схеме failover, которая гарантирует переадресацию запроса в случае недоступности основного узла.

  4. Отказоустойчивый кластер СУБД - предоставляется заказчиком

  5. NFS Share - подключаемое сетевое файловое хранилище, предоставляется заказчиком

  6. Узел сбора и обработки логов системами - Loki, Grafana

  7. Узел сбора и обработки метрик системами - Prometheus, Grafana

clustering

Ниже представлена схема деплоя профилей/коннекторов в шине:

System management

Список и характеристики узлов предпродуктивного контура

Имя сервера Ресурсы Назначение Операционная система Софт

PREPRD_NGINX1

2xCPU, 4Gb RAM, 40 Gb Local

Балансировщик

AstraLinux/CentOS/Ubuntu

Nginx

PREPRD_NGINX2

2xCPU, 4Gb RAM, 40 Gb Local

Балансировщик

AstraLinux/CentOS/Ubuntu

Nginx

PREPRD_KRF1

8xCPU, 12 Gb RAM, 60 Gb Local

Платформа запуска интеграционных маршрутов

AstraLinux/CentOS/Ubuntu

Apache Karaf, Cellar, 11.0.11.fx-librca

PREPRD_KRF2

8xCPU, 12 Gb RAM, 60 Gb Local

Платформа запуска интеграционных маршрутов

AstraLinux/CentOS/Ubuntu

Apache Karaf, Cellar, 11.0.11.fx-librca

PREPRD_NEXUS

4xCPU, 12 Gb RAM, 60 Gb Local

Хранение артефактов

AstraLinux/CentOS/Ubuntu

Nexus

PREPRD_AMQ1

4xCPU, 16 Gb RAM, 60 Gb Local

Брокер сообщений

AstraLinux/CentOS/Ubuntu

Java 11, ActiveMQ Artemis

PREPRD_AMQ2

4xCPU, 16 Gb RAM, 60 Gb Local

Брокер сообщений

AstraLinux/CentOS/Ubuntu

Java 11, ActiveMQ Artemis

Схема прохождения пакета Система1 - Система2

Ниже представлена схема прохождения пакета на примере обмена данными между двумя экземплярами системами.

Экземпляры систем соединяются с шиной через Коннектор, который взаимодействует с сервисом SOAP, Универсальный коннектор, (контекст/cxf/uniform-exchange), предоставляемым шиной.

Укрупненно маршрут выглядит следующим образом:

  1. доставка сообщения до очереди получателя: CXF-сервис → маршрут Camel send-to-jms → очередь в Artemis

  2. получение сообщения: CXF-сервис → очередь в Artemis

  3. подтверждение получения: CXF-сервис → маршрут Camel receive-acknowledge

route packet

Средства мониторинга и отладки

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

Журнал (лог) Nginx

Логи Nginx’a располагаются в папке по пути “/var/log/nginx”.

В папке с логами Nginx’a располагаются 2 типа логов:

  1. Access - отображает все процессы, которые проходят через Nginx.
    В случае когда запрос отработал успешно, сервер возвращает код 200 в access.log и записывает строку с URL запроса, кодом, размером ответа и временем получения ответа.

  2. Error - отображает процессы, в которых возникли ошибки.
    В случае когда запрос отработал с ошибкой, сервер возвращает, например, код 400 в error.log и записывает строку с URL запроса, кодом, кратким описанием ошибки, размером ответа, временем получения ответа и юзер-агентом (HTTP-заголовок, который показывает из какого браузера или иного софта был отправлен запрос).

Веб-консоль брокера сообщений

Apache ActiveMQ Artemis - это брокер сообщений, основной функцией которого является отправка и получение сообщений.

  • В случае использования сборки с внешним брокером, самостоятельная панель управления Artemis доступна по адресу http://localhost:8161/console/login. Для установки внешнего брокера Artemis смотрите инструкцию: Установка и настройка брокера.

  • В компактной версии Entaxy, панель управления Apache ActiveMQ Artemis интегрирована в консоль управления Entaxy. В браузере открываем: http://localhost:8181/hawtio/. Вводим username/password, по умолчанию: entaxy/entaxy.

    1. В веб-консоли можно просматривать очереди сообщений на вкладке “Queues”.

      screenshot artemis 2
    2. На этой же вкладке можно просмотреть название очереди, адрес очереди.

      screenshot artemis 3
    3. Посмотреть количество сообщений в очереди (Message Count).

      screenshot artemis 4
    4. На вкладке “Producers” можно посмотреть данные об отправленных сообщениях (id сообщений, название адресов, на которые были отправлены сообщения).

      screenshot artemis 5
    5. На вкладке “Consumers” можно посмотреть данные о полученных сообщениях (id сообщений, из какой очереди пришли сообщения, название адресов, с которых были получены сообщения).

      screenshot artemis 6
    6. В левой области экрана вы можете выбрать нужную очередь из списка и перейти на вкладку "Browse queues", чтобы просмотреть содержащиеся в ней сообщения.

      screenshot artemis 7
    7. При выборе конкретного сообщения и нажатии кнопки "Show", вы увидите подробности о заголовках и содержании сообщения.

      screenshot artemis 8
    8. При необходимости сообщение можно переместить в другую очередь (кнопка “Move”) или удалить (кнопка “Delete”).

      screenshot artemis 9
    9. Также в консоли имеется возможность полностью очистить очередь от сообщений или полностью удалить очередь из брокера сообщений, выбрав очередь в левой области экрана и перейдя на вкладку “Delete queue”. Однако использовать ручное удаление очередей не рекомендуется, так как они создаются автоматически.

      screenshot artemis 10