Protobuf без протофайла

#java #serialization #protocol-buffers

#java #сериализация #протокол-буферы

Вопрос:

Я хочу выполнить RPC на Java, используя ProtoBuf, но без затрат на разработку, связанных с определением метаданных для каждого класса. Сериализация Java и Kryo могут это сделать. Возможно ли это с ProtoBuf?

Я ценю, что метаданные в .proto файле дают такие преимущества, как управление версиями, но для RPC между системами, которые я контролирую и которые запускаются вместе, это менее актуально — сравните способ, которым Apache Spark использует Kryo.

Комментарии:

1. Если вы выбираете RPC framework, вас может заинтересовать gRPC .

Ответ №1:

Это невозможно. Обратите внимание, что вы пишете только протофайл, класс генерируется для вас protoc компилятором. Итак, я бы сказал, что единственными накладными расходами является интеграция protoc в вашу систему сборки (AFAIK есть плагины Maven и Gradle).

Комментарии:

1. Накладные расходы заключаются в том, что вам нужно отслеживать точное состояние для сохранения из каждого класса, включая закрытие ссылочного графа. С сериализацией Java или Kryo вам не нужно этого делать.