📚 Документация — полное руководство по установке, настройке и использованию подсистемы.
Подсистема создана для оптимизации процесса разработки новых интеграций в 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 |
Время обработки сообщений |
- Создайте предопределённый элемент справочника
инт_ПотокиДанных - Определите моменты триггера для отправки сообщений
- Добавьте регистрацию сообщения в очереди:
РегистрыСведений.инт_ОчередьИсходящихСообщений.ЗарегистрироватьСообщение(
ИсходныеДанные, // Ссылка на объект или ФиксированнаяСтруктура
ПотокДанных // СправочникСсылка.инт_ПотокиДанных
);- В режиме предприятия заполните направление потока (Исходящий) и текст обработчика
- Добавьте подписчиков в табличную часть
Подробнее в документации.
-
Поддержка внешних систем мониторинга (Prometheus) -
Поддержка протокола JRPC 2.0 -
Поддержка RabbitMQ (AMQP) -
Поддержка Apache Kafka - Приём сообщений в несколько потоков
- Версионирование обработчиков потоков в Git
- Поддержка AsyncAPI для описания контрактов
- Динамические подписки на события по потокам
- Синтаксическая подсказка по полям на основании схемы контракта
Информация для разработчиков подсистемы доступна в CONTRIBUTING.md.
- 📚 Документация
- 📊 SonarQube
- 🐛 Issues