Архитектура¶
Назначение¶
Подсистема — встраиваемая библиотека для прикладных решений на платформе 1С:Предприятие, предназначенная для организации двустороннего событийного обмена сообщениями с брокером Apache Kafka.
Адаптер берёт на себя всю техническую часть интеграции, прикладное решение использует его как готовый инфраструктурный слой.
Общая схема¶
flowchart TB
subgraph OneC["1С:Предприятие"]
APP["Прикладное решение"]
HANDLERS["Обработчики продюсера/консьюмера"]
end
subgraph ADAPTER["Адаптер Kafka"]
API["Программный API кфкИнтеграция"]
QUEUE_OUT[/"РС Исходящие сообщения"\]
QUEUE_IN[\"РС Входящие сообщения"/]
JOBS[["Диспетчеры и фоновые задания"]]
DLL["Simple Kafka Connector 1C (DLL)"]
end
subgraph KAFKA["Apache Kafka"]
BROKER[("Брокер / топики")]
end
APP <--> API
API <--> QUEUE_OUT
API <--> QUEUE_IN
QUEUE_OUT --> JOBS
JOBS --> QUEUE_IN
JOBS <--> HANDLERS
HANDLERS <--> APP
JOBS <--> DLL
DLL <--> BROKER Ключевые компоненты¶
Программный API кфкИнтеграция¶
Точка входа для прикладного кода: регистрация сообщений, прямая отправка, чтение.
Регистры-очереди¶
- Исходящие сообщения — очередь сообщений для отправки из 1С в Kafka.
- Входящие сообщения — очередь сообщений, полученных из Kafka.
Диспетчеры и фоновые задания¶
Независимые потоки для:
- сериализации исходящих сообщений;
- выгрузки сериализованных сообщений в Kafka;
- загрузки сообщений из Kafka;
- десериализации и прикладной обработки входящих сообщений;
- контроля дублей — пометка устаревших версий исходящих сообщений.
Количество потоков каждого типа настраивается в диспетчере задач продюсера/консьюмера.
Внешний компонент¶
Simple Kafka Connector 1C — DLL-компонент, построенный на librdkafka. Все низкоуровневые операции с Kafka выполняет он. Компонент встроен в подсистему, отдельная установка не требуется.
Обработчики прикладного решения¶
Функции/процедуры, которые получают объект 1С и формируют тело сообщения (продюсер) или получают тело сообщения и записывают данные в 1С (консьюмер). Поддерживаются:
- произвольные обработчики — экспортные методы общих модулей;
- обработчики через 1С:Конвертация данных 3.1 — правила КД + XDTO-пакет.
Конфигурационные объекты¶
Справочники¶
- Брокеры — параметры подключения к кластерам Kafka.
- Продюсеры — настройки публикации сообщений (топик, формат, сериализация).
- Консьюмеры — настройки загрузки сообщений (топик, формат, десериализация).
Обработки¶
- Интеграция — высокоуровневый программный API адаптера.
- Панель администрирования — управление и мониторинг.
- Регистрация изменений — принудительная постановка данных в очередь.
Регистры сведений¶
Очереди сообщений:
- Исходящие сообщения — очередь для отправки в Kafka.
- Входящие сообщения — очередь для обработки в 1С.
Служебные:
- Очередь потоков — распределение сообщений между потоками обработки.
- Позиции операций — состояние обработки сообщений для фоновых операций.
- Параметры очистки хранилища — настройки автоматического удаления.
- Параметры контроля интеграции — настройки алертов и порогов.
- Параметры логирования — уровни и направления логирования.
Полный перечень метаданных — в разделе Объекты метаданных.
Зависимости¶
| Компонент | Роль |
|---|---|
| Simple Kafka Connector 1C | Внешний компонент для работы с Kafka |
| JSONEditor | UI‑редактор JSON |
| 1С:Библиотека стандартных подсистем | Базовая инфраструктура |
Архитектурные границы¶
| Слой | Основные объекты | Ответственность |
|---|---|---|
| Публичный фасад | кфкИнтеграция, кфкИнтеграцияКлиент | Стабильные точки входа прикладного кода |
| Регистрация | Подписки на события, кфкОбработкаСобытийСлужебный | Отбор изменений и постановка в очередь |
| Хранение состояния | Очереди и служебные регистры | Устойчивое состояние сообщений и фоновых операций |
| Оркестрация | кфкФоновыеОперацииСлужебный | Диспетчеризация, параллельная обработка, очистка и контроль |
| Преобразование | Прикладные обработчики, кфкОбменДаннымиXDTOСервер | Сериализация и десериализация бизнес-данных |
| Транспорт | Обработка кфкИнтеграция | Сессии внешней компоненты и операции Kafka |
| Администрирование | кфкПанельАдминистрирования | Настройка, очереди и диагностика |
Прикладное решение отвечает за бизнес-события, контракты сообщений, обработчики и идемпотентность бизнес-операций. Адаптер отвечает за очереди, транспорт, повторы, диспетчеризацию и наблюдаемое техническое состояние. Apache Kafka и эксплуатация кластера находятся за границей подсистемы.
Изменение сигнатур публичного фасада, схемы или семантики очередей, распределения фоновых потоков, поведения внешней компоненты либо contract обработчиков считается изменением архитектурной границы. Для таких изменений нужны SDD, compatibility analysis, документация и релевантные тесты; устойчивое изменение границ компонентов дополнительно требует ADR.
Как устроены потоки данных — в разделе Потоки данных. Принципы работы и ограничения — в Принципы и ограничения.