Шина данных на Apache Kafka

16.03.26

Интеграция - Внешние источники данных

Используем Kafka как шину данных для 1С для конфигураций, использующих БСП.

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Шина данных на Apache Kafka:
.cfe 19,00Mb
60 Скачать бесплатно

Подсистема поверх Внешняя компонента 1с (native) для взаимодействия с Apache Kafka.

 

Принцип работы

Узлом сервисной шины является кластер серверов Kafka. Для него указываются bootstrap сервера, для подключения и имя группы получателей, для возможности чтения сообщений из узла. В состав узла добавляются метаданные для выгрузки/загрузки изменений, указываются топики в которые будут отправляться или читаться изменения и указывается направление обмена входящее или исходящее. Изменения объектов регистрируются в узлы плана обмена сервисной шины, упаковываются в сообщения и отправляются в брокер. Изменения из шины получаются путем подписки на топики узла с последующим разбором полученных из брокера сообщений. Для отправки и получения сообщений из шины используются специализированные объекты внешней компоненты - Отправитель и Получатель соответственно.

 

Как с этим работать

Для добавления обработки метаданных сервисной шиной требуется описать соответствующие методы сбора/разбора сообщений. Методы описываются в модуле менеджера метаданных.

Без описанных методов отправка и разбор полученных будет по умолчанию записывать через сериализатор XDTO и через него же и читать.

Сообщения на отправку можно собирать менеджером как по одному. Узел сам получает каждый изменённый объект, передает его менеджеру вместе с сообщением и менеджер наполняет сообщение о изменении на основании переданного объекта.

 
 СообщениеДляОтправкиВУзел(Сообщение, ОбъектИзменений, Узел = Неопределено)

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

 
 ПолучитьСообщенияДляСервиснойШиныПредприятия(ПараметрыУзла, ПараметрыТопика, НомерСообщенияОбмена)

Аналогично и для разбора сообщений. Они либо по одному разбираются:

 
 РазобратьВходящееСообщение(Сообщение, Узел = Неопределено)

Либо сразу вся полученная порция передается менеджеру для разбора:

 
 РазобратьВходящиеСообщенияСервиснойШины(Сообщения, Узел)

В обоих случаях групповая обработка имеет больший приоритет. Если реализован метод для обработки порции изменений/сообщений, то используется он, вне зависимости описан ли метод единичной обработки..

После описания методов обработки сообщений настраивается узел:

 

 

  • Код и наименование - С указанием кода узла будут формироваться фоновые задания на выгрузку/загрузку сообщений
  • Bootstrap servers - Строка подключения к кластеру Kafka, сервера кластера перечисляются через запятую
  • Имя группы получателей - Используется брокером кластера для фиксации смещений прочитанных сообщений и отдачи следующих непрочитанных.
  • Состав:
    • Направление - Следовательно в какую сторону идет обмен, читаем из топика или отправляем в него
    • Имя топика - Топик в кластере Kafka
    • Метаданные - Изменения каких метаданных отправляем и чьим менеджером собираем/разбираем сообщения.

 

Из полезных настроек чтения можно выделить:

  • Количество потоков чтения - По факту это количество фоновых заданий на чтение из топика. Устанавливать его больше чем количество разделов в топике не имеет смысла, потому что каждый поток подписывается на получение сообщений. А брокер каждому подписчику назначает раздел с которого ему читать сообщения, по одному на подписчика. Если подписчиков будет больше разделов топика то подписчики которым не хватило раздела будут висеть в ожидании не получая никаких сообщений.
  • Количество в порции - Количество сообщений получаемых за одну итерацию чтения. Настраивается в зависимости от размера единичного сообщения в топике и трудозатратности его разбора. Если сообщение содержит +100500 строк, а при его разборе приходится обновлять множество объектов или выполнять какие ни будь сложные алгоритмы вычислений, то не стоит вычитывать большое количество единовременно, лучше читать меньшими порциями но чаще. 

 

Для исходящих направлений, как и в любом плане обмена, метаданные должны быть добавлены в состав, для регистрации изменений по ним (ПланОбмена.ApacheKafka). Для разбора входящих сообщений менеджером метаданных, добавлять их в состав не обязательно.

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.9.232

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    30417    42    49    

46

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

122000 руб.

19.08.2020    29087    27    3    

28

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    13025    14    8    

16

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (Базовая, ПРОФ, КОРП, ФРЕШ (тонкий клиент)).

17080 руб.

19.12.2016    53436    119    107    

83

Внешние источники данных Программист Бизнес-аналитик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Обработка для выгрузки данных из подготовленных СКД в фоновом режиме в базу ClickHouseDB, PostgreSQL, MySQL, в шину данных с поддержкой REST API (CSV, JSON. SQL), в локальные файлы (CSV, JSON, XLS, XLSX) или в Google Sheets. Это дополнительная подключаемая обработка.

18000 руб.

21.08.2024    8208    21    4    

18

Внешние источники данных Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Быстро и легко. Выгрузка всех элементов и групп номенклатуры (с их иерархией), кроме помеченных на удаление. Без использования COM-объектов.

4880 руб.

16.08.2023    3729    7    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Viktor_Ermakov 400 17.03.26 13:56 Сейчас в теме
Спасибо за статью, очень интересно.
Скажите, а как происходит технически общение с Kafka?
Какие механизмы платформы?
2. vladek20009 25.03.26 14:37 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация