github NuclearAPK/Simple-Kafka_Adapter v1.8.1

7 hours ago

Simple Kafka Adapter v1.8.1

Дата выпуска: 28 января 2026

Основные изменения

Улучшенная работа с AVRO

Значительно переработан функционал декодирования AVRO сообщений. Теперь компонента корректно работает с различными форматами AVRO данных и предоставляет новый метод для извлечения схемы.

Новый метод: ПолучитьСхемуAVRO / GetAvroSchema

Извлекает схему из AVRO файла в формате OCF и возвращает её в виде JSON строки.

ДанныеAVRO = Новый ДвоичныеДанные("C:\Data\orders.avro");
СхемаJSON = Компонента.ПолучитьСхемуAVRO(ДанныеAVRO);
Сообщить(СхемаJSON);

Поддержка нескольких форматов AVRO

Метод ДекодироватьСообщениеAVRO теперь автоматически определяет формат входных данных:

Формат Описание Требуется схема
Avro OCF Object Container File (Obj1) Нет
Confluent Wire Format Schema Registry формат Да
Raw Avro Данные без контейнера Да

Исправлено аварийное завершение

Устранено критическое падение компоненты при вызове ДекодироватьСообщениеAVRO с параметром asJson=true. Сериализация в JSON полностью переписана для стабильной работы.


Анализ размера топиков

Новый метод ПолучитьРазмерТопика / GetTopicSize позволяет получить размер топика в байтах.

Результат = Компонента.ПолучитьРазмерТопика("bootstrap:9092", "my-topic", 30000);
// {"total_bytes": 1234567, "message_count": 1000, "partitions": [...]}

Настраиваемый таймаут остановки консьюмера

Новый метод УстановитьТаймаутОчисткиКонсьюмера / SetConsumerCloseTimeout позволяет настроить время ожидания при остановке консьюмера (по умолчанию 10 секунд).

Компонента.УстановитьТаймаутОчисткиКонсьюмера(5000); // 5 секунд

Улучшенная обработка ошибок

Методы ОстановитьПродюсера и ОстановитьКонсьюмера теперь возвращают Ложь в случае ошибки:

  • Таймаут операций flush/close
  • Недоставленные сообщения в очереди
  • Ошибки при закрытии соединений

Текст ошибки доступен через ПолучитьСообщениеОбОшибке().


Обновление

При обновлении с версии 1.8.0:

  1. Совместимость API: Все существующие вызовы остаются совместимыми
  2. Изменение поведения: ДекодироватьСообщениеAVRO с asJson=false теперь возвращает raw Avro данные (без OCF контейнера), а не исходный файл

Полный список изменений

Добавлено

  • ПолучитьСхемуAVRO / GetAvroSchema - извлечение схемы из AVRO файла
  • ПолучитьРазмерТопика / GetTopicSize - получение размера топика в байтах
  • УстановитьТаймаутОчисткиКонсьюмера / SetConsumerCloseTimeout - настройка таймаута остановки консьюмера

Изменено

  • Автоматическое определение формата AVRO (OCF, Confluent Wire Format, Raw Avro)
  • Переработана сериализация AVRO в JSON (std::ostringstream вместо boost::json)
  • Улучшена обработка опциональных параметров в методах AVRO
  • ОстановитьПродюсера и ОстановитьКонсьюмера теперь возвращают Ложь при ошибках

Исправлено

  • Аварийное завершение при декодировании AVRO с asJson=true
  • Ошибка "Invalid data file. Magic does not match" для raw Avro данных
  • Обработка Неопределено в параметрах ДекодироватьСообщениеAVRO

Ссылки

  • Документация AVRO
  • Документация Producer
  • Документация Consumer
  • Полный CHANGELOG

Don't miss a new Simple-Kafka_Adapter release

NewReleases is sending notifications on new releases.