Каталог решений - Реализация обмена в формате Protobuf

Реализация обмена в формате Protobuf

Реализация обмена в формате Protobuf

В наличии

Вариация на тему, как подружить ужа с ежом. А точнее — реализовать обмен JSON сообщениями через Kafka, используя протокол Protobuf.

Категория:

Описание

Появилась потребность реализовать интеграцию с внутренними сервисами через Kafka, используя протокол Protobuf. Почему именно Protobuf? Потому что целевые сервисы-приемники реализованы на golang, для которого Protobuf как КД 2/КД 3 для 1С, и в целом в контуре был принят внутренний стандарт по использованию proto. Хотя скорее всего разработчики просто ленивые и не хотели сами писать парсер сообщений.

 

Что такое Protobuf?

Protocol Buffers (Protobuf) — протокол сериализации данных, разработанный компанией Google. Предназначен для эффективного и быстрого обмена структурированными данными между разными компьютерными системами, языками программирования и платформами.

Источник

 

Почему Protobuf?

  • Компактность по сравнению с текстовыми форматами, такими как XML или JSON.
  • Скорость сериализации и десериализации данных из-за оптимизированной структуры данных.
  • Языковая независимость — протокол поддерживает генерацию кода на множестве популярных языков программирования.
  • Обратная совместимость — можно добавлять новые поля или изменять схему данных, не разрушая работу уже существующих систем, которые используют старую версию схемы.

Источник

 

Как работает Protobuf?

Протокол работает в несколько этапов:

  1. Описание структуры данных в файле с расширением .proto. В этом файле используется простой синтаксис, независимый от языка программирования.
  2. Генерация кода с помощью компилятора protoc. Он генерирует код для работы с этой структурой на нужном языке.
  3. Сериализация и десериализация данных — после генерации кода можно работать с данными в бинарном формате, используя методы сериализации и десериализации, созданные компилятором.

Источник

Т.е. если вкратце, то протокол Protobuf — это такой стильный-модный-молодежный а-ля SOAP со строгой типизацией, структурой и т.д. Сам себя проверяет, позволяет генерировать парсеры сообщений под нужный стек на основании описанной структуры, сам моет сам убирает, короче огонь! Но тут на сцену выходит платформа 1С.. вся в белом желтом.. и средств для работы с протоколом конечно же нет. Почти.

На помощь загрустившим нам и платформе в желтом выходит, например, python + возможность вызывать скрипты средствами платформы.

Идея не новая, реализация следующая:

 

has been added to your cart:
Оформление заказа