Protocol Buffers — формат сериализации со схемой .proto, обычно используемый в gRPC. Поля передаются по числовым тегам, а значения кодируются компактно; имена полей не повторяются в каждом сообщении.
Как устроен протокол Protocol Buffers в gRPC и за счёт чего достигается высокая скорость сериализации?
Protocol Buffers — формат сериализации со схемой .proto, обычно используемый в gRPC. Поля передаются по числовым тегам, а значения кодируются компактно; имена полей не повторяются в каждом сообщении.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Protocol Buffers — формат сериализации со схемой .proto, обычно используемый в gRPC. Поля передаются по числовым тегам, а значения кодируются компактно; имена полей не повторяются в каждом сообщении.
Varint экономит место для небольших целых, а строки и вложенные сообщения имеют длину перед данными. Заранее известная схема и сгенерированные реализации сокращают часть накладных расходов. Protobuf не является транспортом: gRPC отдельно определяет RPC-взаимодействие. Он не гарантирует ускорение для любого сообщения; сравнивают конкретный runtime и данные. При изменении схемы важно сохранять номера полей и правила совместимости.
Источник: protobuf.dev.