Перейти к содержанию

Архитектура

Назначение

Подсистема — встраиваемая библиотека для прикладных решений на платформе 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.


Как устроены потоки данных — в разделе Потоки данных. Принципы работы и ограничения — в Принципы и ограничения.