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

16.03.26

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

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

Бесплатные

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

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

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

Подсистема поверх Внешняя компонента 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    30030    41    49    

45

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

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

18000 руб.

21.08.2024    7683    19    4    

16

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

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

17080 руб.

19.12.2016    53067    115    107    

81

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

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

4880 руб.

16.08.2023    3569    7    8    

9

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

Решение позволяет по ИНН производить проверку контрагентов, получая сведения: видов деятельности, данных ЕГРЮЛ, связанных организаций, отчетности, налогов, финансовый анализ, а также в один клик заполнить карточки справочников контрагентов/партнеров по ИНН в программе 1С по данным государственных реестров.

6000 руб.

12.08.2025    2750    9    20    

9
Для отправки сообщения требуется регистрация/авторизация