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

Архитектура Bercut ESB

Описание компонентов​

Архитектура Bercut ESB состоит из следующих основых компонентов:

Preview

Схема взимодействия компонентов архитектуры

Веб-интерфейс​

O&M UI (Operations & Maintenance User Interface) — веб‑интерфейс эксплуатации и администрирования Bercut ESB: обеспечивает управление интеграционными потоками (активацию, настройку, мониторинг), визуализацию статусов и метрик. Реализован на стеке React.js + TypeScript с применением RTK Query для работы с API, Ant Design в качестве библиотеки компонентов, React Flow для визуализации графов потоков и сборщика Vite.

ESB Runtime​

ESB Runtime - runtime‑контейнер, который объединяет компоненты:

  • API Gateway. Это «входной слой» ESB, через который проходят все внешние HTTP‑запросы. Единая точка входа для внешних потребителей. Выполняет:
    • терминирование SSL (завершение шифрованного соединения на стороне ESB);
    • аутентификацию и авторизацию входящих запросов;
    • маршрутизацию запросов к нужным узлам ESB Core;
    • балансировку нагрузки между узлами ESB Core внутри группы.
  • ESB Core.  Ядро обработки интеграционных потоков. Подробнее в разделе ESB Core.
  • State Collector. Компонент мониторинга на Spring Boot, который периодически собирает статусы маршрутов и метрики со всего Run Time и сохраняет их в State Collector DB для аналитики и алертинга.
  • License Manager. сервис на Spring Boot для проверки лицензий, контроля квот и управления доступом к функционалу Bercut ESB.
  • Configuration Server. Инструмент для создания, редактирования и публикации конфигураций ESB; управляет версиями и деплоем настроек в рантайм. Подробнее в разделе Configuration Server.

ESB Core​

ESB Core – масштабируемое ядро исполнения интеграционных потоков. Отвечает за запуск и обработку потоков, загрузку и актуализацию конфигурации от Configuration Server, и обеспечение корректной активации потоков в среде Run Time с учётом зависимостей и текущих состояний.

Основные функции:

  • Получение целевой конфигурации от Configuration Server при старте и в ходе работы.
  • Исполнение интеграционных потоков согласно целевой конфигурации.
  • Периодический опрос Configuration Server (heartbeat) для проверки необходимости обновления конфигурации.
  • Отправка отчета в Configuration Server о результатах применения конфигурационных изменений.
  • Получение информации по соединениям для потоков - если они предусмотрены в активируемом потоке.
  • Получение информации по файлам для потоков - если они задействованы в активируемом потоке.
  • Полноценная активация потока на стороне Run Time с учетом зависимостей, ресурсов и текущих статусов.

Особенности применения:

  • Масштабируется горизонтально: несколько экземпляров ESB Core могут входить в одну Node Group для распределения нагрузки.
  • Не хранит целевое состояние конфигурации – все изменения поступают централизованно через Configuration Server.
  • Конфигурация применяется динамически без необходимости полного перезапуска контейнера (в рамках принятой стратегии обновления).

Configuration Server​

Configuration Server – конфигурационный сервер, который хранит целевое состояние групп ESB Core и управляет доставкой конфигураций на узлы.

Основные функции:

  • Хранение целевых конфигураций в Configuration DB (персистентное хранилище).
  • Прием запросов на изменение конфигурации со стороны ESB Design Time.
  • Применение конфигурационных изменений к узлам ESB Core и API Gateway.
  • Предоставление актуальной конфигурации и списка изменений по запросам от ESB Core.
  • Формирование ответов на heartbeat‑запросы (флаг необходимости обновления).

Design time​

Design time представляет среду проектирования и управления конфигурациями интеграционных потоков. Ключевые операции в Design Time: создание домена и потока, работа в редакторе, сохранение версии, активация потока

Состав и функции компонентов:

  • Frontend. Пользовательский интерфейс. Состоит из компонентов:
    • Flow Editor - визуальный редактор, где можно собрать интеграционный поток из блоков. Подробнее читайте на странице Редактор потоков.
    • Domain & Flow Table - таблица для просмотра и управления доменами и потоками: отображает список артефактов с метаданными, позволяет фильтровать и сортировать записи, переходить к редактированию или активации, а также видеть иерархию и зависимости потоков.
    • Administrative tab - вкладка с административными инструментами позволяет:
      • посмотреть список "развернутых" (активированных) потоков с получением дополнительной информации:

        • дата развертывания потока;
        • инициирующий транспорт (эндпоинт вызова потока);
        • адрес сервера выполнения потока;
      • посмотреть список сессий (вызовов) потоков, находящихся в режиме "Отладка";

      • проверить статус лицензии ESB.

  • Backend. Содержит базу данных, которая хранит конфигурации, версии и метаданные артефактов.

Компоненты интеграции с внешними сервисами​

Компоненты Bercut ESB обеспечивают взаимодействие с внешними системами очередей сообщений и файловыми хранилищами. Реализуют асинхронный обмен данными, буферизацию нагрузки и надёжную передачу сообщений между ESB и внешними сервисами.

  • Kafka - распределённая платформа потоковой передачи событий для высоконагруженной асинхронной передачи сообщений с возможностью повторного чтения и строгой упорядоченностью в партициях.
  • RabbitMQ - брокер сообщений на базе AMQP с гибкой маршрутизацией и гарантированной доставкой: ориентирован на сценарии с очередями задач и сложной схемой распределения сообщений.
  • Файловые хранилища - сервисы для хранения и обмена файлами в интеграционных сценариях: обеспечивают размещение, доступ и управление жизненным циклом файлов (загрузка, скачивание, удаление, архивация) через коннекторы (FTP/SFTP, S3‑совместимые и др.).

Хранение данных​

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

Состав и функции компонентов:

  • Loki - система хранения и поиска логов: агрегирует текстовые логи компонентов ESB, поддерживает фильтрацию по лейблам и быстрый поиск по содержимому.

  • PostgreSQL - основная реляционная СУБД: хранит конфигурации, метаданные артефактов, версии потоков, статусы и историю изменений.

  • VictoriaMetrics - хранилище метрик: собирает и хранит временные ряды (нагрузка, latency, throughput, ошибки) для мониторинга и алертинга.

Вспомогательные сервисы​

  • KeyCloak - сервис аутентификации и управления учетными данными в ESB: обеспечивает проверку токенов, управление ролями и контроль доступа к API и UI.
  • Grafana - панель визуализации: отображает метрики из VictoriaMetrics, логи из Loki и трейсы из Tempo, позволяет строить дашборды и настраивать оповещения.

Сценарии взаимодействия ESB Core и ESB Configurator​

Инициализация конфигурации при старте ESB Core​

  1. При запуске ESB Core запрашивает у Configuration Server актуальный набор конфигураций.
  2. Configuration Server возвращает список Configuration Items с указанием версии, на основании которого в ESB Core активируются присутствующие в списке элементы, а отсутствующие, но имеющиеся в Core — деактивируются.
  3. ESB Core применяет конфигурацию и отправляет в ESB Configurator отчет об этом.

Отслеживание изменений (механизм heartbeat)​

  1. ESB Core периодически опрашивает Configuration Server (GET‑запрос), передавая идентификатор последней примененной версии.
  2. Configuration Server сообщает, есть ли новые изменения.
  3. При наличии изменений ESB Core выполняет получение и применение обновленной конфигурации по логике Инициализации конфигурации.

Инкрементальное обновление конфигурации​

  1. ESB Core отправляет GET‑запрос на получение обновлений
  2. Configuration Server возвращает инкрементальный набор Configuration Items.
  3. ESB Core применяет изменения.