Общее описание Entaxy
Entaxy обеспечивает следующую функциональность
-
Доступ внешних систем к шине через опубликованные сервисы (SOAP, REST и прочее);
-
Создание, редактирование и запуск SOAP и REST сервисов через UI (поддержка WSDL и OpenAPI);
-
Поддержка синхронного и асинхронного способа вызова служб;
-
Защищенная шина и гарантированная доставка сообщений (поддержка транзакционной модели);
-
Статистическая и алгоритмическая (условная, опирающаяся на значение передаваемых данных) маршрутизация;
-
Доступ к данным из сторонних информационных систем; Готовые и специально разработанные адаптеры;
-
Обработка и преобразование сообщений; Адаптация данных под потребности системы;
-
Отказоустойчивая конфигурация;
-
Разнообразные механизмы контроля и управления; Аудиты, протоколирование;
-
Мониторинг данных и бизнес-процессов; Отслеживание и анализ работы системы;
-
Поддержка потоков обработки ответа и пост-обработки;
-
Создание и редактирование коннекторов и профилей;
-
Создание и редактирование пользовательских маршрутов;
-
Создание и редактирование выходных маршрутизаторов;
-
Просмотр и загрузка ресурсов через UI;
-
Управление профилем посредством интерактивной диаграммы.
Entaxy решает следующие задачи
-
Интеграция и обмен данными:
-
Обеспечивает эффективный обмен сообщениями и данными между приложениями и информационными системами.
-
Унифицирует взаимодействие с внешними информационными системами.
-
-
Управление доступом и услугами:
-
Организует точки доступа к сервисам и данным, снижая сложность взаимодействия.
-
-
Мониторинг и анализ данных:
-
Позволяет в режиме реального времени осуществлять мониторинг интеграционных процессов.
-
-
Оптимизация организационных процессов:
-
Снижает трудоемкость сбора и агрегации информации.
-
Повышает оперативность подготовки отчетов.
-
-
Автоматизированная проверка данных:
-
Гарантирует надежность данных, используемых в процессе деятельности.
-
Поддерживает автоматизированную проверку данных.
-
-
Уменьшение затрат на ИТ-поддержку:
-
Оптимизирует операционные издержки, связанные с ИТ-поддержкой.
-
-
Гибкость и расширяемость:
-
Поддерживает различные стандарты и протоколы.
-
Обеспечивает гибкие возможности расширения функциональности.
-
-
Предоставляет шаблоны интеграции корпоративных приложений для упрощения процесса интеграции.
Поддерживаемые конфигурации запуска
-
ОС: AstraLinux/CentOS/Ubuntu/Windows
-
Для подключения к веб-интерфейсу поддерживаются браузеры: Chrome/Яндекс.Браузер/FireFox
-
Программная платформа: Java 11 (Axiom JDK / Open 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
-
Система мониторинга и сбора логов: Grafana, Prometheus, Loki
Стек используемых технологий
Основной стек включает в себя следующие компоненты, доступные для скачивания с официальных сайтов:
-
Entaxy
-
Apache Karaf
Подготовленная сборка для установки Entaxy.
Скачать
-
-
Программная платформа
-
JAVA 11.0.19
Для работы системы требуется Java 11, которая была протестирована на OpenJDK и AxiomJDK.
Дистрибутивы Java 11 для скачивания доступны по следующим ссылкам:
-
-
Брокер сообщений
-
Artemis 2.19.1
Скачать Artemis.
-
-
СУБД
-
PostgreSQL 14
Объектно-реляционная система управления базами данных.
Скачать PostgreSQL.
-
-
Система Мониторинга
-
Grafana 9.3
Платформа для визуализации и мониторинга метрик.
Скачать Grafana. -
Prometheus 2.33
Система мониторинга и оповещения.
Скачать Prometheus. -
Loki 2.2.1
Система хранения логов.
Скачать Loki. -
Fluentbit 1.8.12
Инструмент для обработки логов.
Скачать Fluentbit.
-
-
Агенты сбора метрик
-
Node Exporter 1.5.0
Экспортер метрик для операционной системы Linux.
Скачать Node Exporter -
Telegraf 1.27.1
Агент для сбора и передачи метрик.
Скачать Telegraf
-
Схема развертывания
Ниже представлена схема развертывания основных компонентов шины, содержащая следующие элементы:
-
Кластер NGINX - два узла, обеспечивающих отказоустойчивый балансировщик нагрузки, с одним виртуальным IP-адресом
-
Кластер Karaf - в начальной конфигурации используется 2 узла, в дальнейшем схема масштабируется горизонтально. Наличие кластера обеспечивает отказоустойчивость и производительность, так как нагрузка распределяется между всеми активными узлами
-
Кластер брокера сообщений ActiveMQ Artemis - отказоустойчивая конфигурация "активный - пассивный", в которой все транзакции активного брокера реплицируются на пассивный. При выходе из строя активного брокера, активным становится пассивный. Все вызовы брокера сообщений осуществляются по схеме failover, которая гарантирует переадресацию запроса в случае недоступности основного узла.
-
Отказоустойчивый кластер СУБД - предоставляется заказчиком
-
NFS Share - подключаемое сетевое файловое хранилище, предоставляется заказчиком
-
Узел сбора и обработки логов системами - Loki, Grafana
-
Узел сбора и обработки метрик системами - Prometheus, Grafana
Ниже представлена схема деплоя профилей/коннекторов в шине:
Список и характеристики узлов предпродуктивного контура
Имя сервера | Ресурсы | Назначение | Операционная система | Софт |
---|---|---|---|---|
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), предоставляемым шиной.
Укрупненно маршрут выглядит следующим образом:
-
доставка сообщения до очереди получателя: CXF-сервис → маршрут Camel send-to-jms → очередь в Artemis
-
получение сообщения: CXF-сервис → очередь в Artemis
-
подтверждение получения: CXF-сервис → маршрут Camel receive-acknowledge
Средства мониторинга и отладки
Для мониторинга работы и отладки шины для сценария прохождения пакета могут быть использованы следующие инструменты.
Журнал (лог) Nginx
Логи Nginx’a располагаются в папке по пути “/var/log/nginx”.
В папке с логами Nginx’a располагаются 2 типа логов:
-
Access - отображает все процессы, которые проходят через Nginx.
В случае когда запрос отработал успешно, сервер возвращает код 200 в access.log и записывает строку с URL запроса, кодом, размером ответа и временем получения ответа. -
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.
-
В веб-консоли можно просматривать очереди сообщений на вкладке “Queues”.
-
На этой же вкладке можно просмотреть название очереди, адрес очереди.
-
Посмотреть количество сообщений в очереди (Message Count).
-
На вкладке “Producers” можно посмотреть данные об отправленных сообщениях (id сообщений, название адресов, на которые были отправлены сообщения).
-
На вкладке “Consumers” можно посмотреть данные о полученных сообщениях (id сообщений, из какой очереди пришли сообщения, название адресов, с которых были получены сообщения).
-
В левой области экрана вы можете выбрать нужную очередь из списка и перейти на вкладку "Browse queues", чтобы просмотреть содержащиеся в ней сообщения.
-
При выборе конкретного сообщения и нажатии кнопки "Show", вы увидите подробности о заголовках и содержании сообщения.
-
При необходимости сообщение можно переместить в другую очередь (кнопка “Move”) или удалить (кнопка “Delete”).
-
Также в консоли имеется возможность полностью очистить очередь от сообщений или полностью удалить очередь из брокера сообщений, выбрав очередь в левой области экрана и перейдя на вкладку “Delete queue”. Однако использовать ручное удаление очередей не рекомендуется, так как они создаются автоматически.
-