Skip to content

Внешняя компонента Apache kafka для 1C

Notifications You must be signed in to change notification settings

kovalevdmv/1CApacheKafka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

1CApacheKafka

Внешняя компонента Apache kafka для 1C.

Нативная внешняя компонента написанная на Rust/C++ для удобного взаимодействия с брокером сообщений Apache Kafka без реализации внешних прокси сервисов.

Работает на Windows и Linux.

Основная логика написана на Rust, что снижает вероятность утечки памяти, по сравнению с разработкой на С++, но при этом дает быстродействие сопоставимое с приложениями на С++.

Реализованы следующие функции:

  • Получение сообщений из топика;
  • подтверждение получения;
  • отправка сообщения в топик;
  • работа с заголовками;
  • подключение по SSL;
  • авторизация через логин/пароль (SASL).

Компонента поставляется в двух формах, в платной и бесплатной. У бесплатной версии есть одно ограничение, на размер сообщения - 2'000 символов. Компонента поставляется в виде конфигурации с примерами и обработкой КлиентKafka, которая является оберткой над компонентой, для более удобной работы с ее методами из кода. Для использования необходимо скопировать обработку КлиентKafka в конфигурацию, вся работа реализуется через эту обработку.

Скачать можно в разделе Релизы
Репозиторий содержит только бинарные релизы.

Для приобретения полной версии можно связаться с автором по телеграм.
Телеграм канал с прочей информацией о внешних компонентах автора.
Телеграм канал с прочими видео автора.

Примеры кода

Это только базовые примеры, более подробно можно посмотреть в видео обзоре.
Так же примеры есть в конфигурации, с которой поставляется компонента.
Так можно почитать обзорную статью по компоненте.

Отправка

КлиентKafka = Обработки.КлиентKafka.Создать();
КонфигурацияОтправителя = КлиентKafka.КонфигурацияОтправителя();
КлиентKafka.ДобавитьНастройку(КонфигурацияОтправителя, "bootstrap.servers", "192.168.0.159:9092"); 
Отправитель = КлиентKafka.СоздатьОтправителя(КонфигурацияОтправителя);
Заголовки = Новый Массив;
КлиентKafka.ДобавитьЗаголовокСообщения(Заголовки, "ТипДанных", "text");
Топик = "1CRefs";
Ключ = "refs";
Сообщение = КлиентKafka.СоздатьСоообщение(Отправитель, Топик, "text message", Ключ,, Заголовки); 
Ответ = КлиентKafka.ОтправитьСообщение(Сообщение);
// !!! обязательно удалить экземпляр отправителя, если он больше не нужен
Ответ = КлиентKafka.УдалитьОтправителя(Отправитель);

Получение

КлиентKafka = Обработки.КлиентKafka.Создать();
Топик = "1CRefs";
Теги = "Тест";
Группа = "group1";     
Таймаут = 30;//сек. 
КонфигурацияПотребителя = КлиентKafka.КонфигурацияПотребителя(Топик, Теги, Таймаут);
КлиентKafka.ДобавитьНастройку(КонфигурацияПотребителя, "group.id", Группа);
КлиентKafka.ДобавитьНастройку(КонфигурацияПотребителя, "bootstrap.servers", "192.168.0.159:9092");
КлиентKafka.ДобавитьНастройку(КонфигурацияПотребителя, "enable.auto.commit", "false");
КлиентKafka.ДобавитьНастройку(КонфигурацияПотребителя, "auto.offset.reset", "earliest"); 
Канал = КлиентKafka.НачатьПолучениеСообщений(КонфигурацияПотребителя);
Сообщение = КлиентKafka.ПолучитьСообщение(Канал);
РезультатПодтверждения = КлиентKafka.СохранитьСмещение(Сообщение);

About

Внешняя компонента Apache kafka для 1C

Resources

Stars

Watchers

Forks

Packages

No packages published