#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 вам не нужно этого делать.