Skip to content

Segate-ekb/integration_subsystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

210 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Подсистема интеграции

Статус порога качества

📚 Документация — полное руководство по установке, настройке и использованию подсистемы.

Подсистема создана для оптимизации процесса разработки новых интеграций в 1С:Предприятие 8.3.

Возможности

  • 🔄 Управление потоками данных — контроль входящих и исходящих потоков с поддержкой множества подписчиков
  • Валидация по контрактам — проверка соблюдения контрактов (OpenAPI 3.0) при приёме и формировании сообщений
  • 📊 Мониторинг Prometheus — сбор метрик состояния подсистемы в реальном времени
  • Многопоточность — формирование и отправка сообщений в несколько потоков из коробки
  • 🔌 Множество протоколов — HTTP, RabbitMQ, Kafka, JRPC 2.0
  • 🛠 Произвольные обработчики — гибкая настройка логики обработки сообщений
  • 📝 Минимальное вмешательство — простая интеграция в существующую конфигурацию

Оглавление:

Внедрение и первоначальная настройка

Потоки данных

Подписчики

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

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

Реализованные типы подписчиков:

Тип Описание
HTTP Произвольный HTTP-подписчик с настраиваемыми заголовками и методами
Подсистема интеграции Интеграция с другой информационной базой через эту же подсистему
RabbitMQ Отправка сообщений в очередь RabbitMQ (AMQP)
Kafka Публикация сообщений в топики Apache Kafka
JRPC 2.0 Отправка сообщений по протоколу JSON-RPC 2.0

Пост-Обработка ответов

Для каждого подписчика можно задать обработчик ответов. Обработчик ответов - это произвольный обработчик, который будет вызван после отправки сообщения. В обработчик будет передан ответ от подписчика, а так же ссылка на исходные данные сообщения.

Валидация

В подсистеме реализован механизм валидации сообщений при приёме и отправке на основе контрактов OpenAPI 3.0.

  • Справочник инт_Схемы — хранение схем валидации в формате JSON
  • Кэширование — автоматическое кэширование схем из удалённых источников
  • Валидация payload — проверка структуры и типов данных сообщений

Мониторинг

Подсистема предоставляет метрики в формате Prometheus через HTTP-сервис:

GET /integration_subsystem/hs/prometheus/polling

Доступные метрики

Метрика Описание
pde_queue_length Количество сообщений в очереди (по каждой очереди отдельно)
pde_messages_sent_total Общее количество отправленных сообщений
pde_messages_failed_total Количество сообщений с ошибками
pde_processing_duration_seconds Время обработки сообщений

Быстрый старт

Создание исходящего потока

  1. Создайте предопределённый элемент справочника инт_ПотокиДанных
  2. Определите моменты триггера для отправки сообщений
  3. Добавьте регистрацию сообщения в очереди:
РегистрыСведений.инт_ОчередьИсходящихСообщений.ЗарегистрироватьСообщение(
    ИсходныеДанные,  // Ссылка на объект или ФиксированнаяСтруктура
    ПотокДанных      // СправочникСсылка.инт_ПотокиДанных
);
  1. В режиме предприятия заполните направление потока (Исходящий) и текст обработчика
  2. Добавьте подписчиков в табличную часть

Подробнее в документации.

Roadmap

  • Поддержка внешних систем мониторинга (Prometheus)
  • Поддержка протокола JRPC 2.0
  • Поддержка RabbitMQ (AMQP)
  • Поддержка Apache Kafka
  • Приём сообщений в несколько потоков
  • Версионирование обработчиков потоков в Git
  • Поддержка AsyncAPI для описания контрактов
  • Динамические подписки на события по потокам
  • Синтаксическая подсказка по полям на основании схемы контракта

Разработчикам

Информация для разработчиков подсистемы доступна в CONTRIBUTING.md.

Ссылки

Лицензия

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages