微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

protobuf 是否只有在 grpc 中使用的技术?

如何解决protobuf 是否只有在 grpc 中使用的技术?

在 grpc 中,我们可以使用其他一些格式来代替 protobuf 吗?

解决方法

gRPC 堆栈对所使用的编组器/序列化器没有严格的依赖性。 gRPC 看到的只是一个二进制缓冲区,其中包含完全不透明的内容(它甚至没有指定内容类型标头),通过 HTTP/2 路由发送。

按照惯例,gRPC 由 .proto 模式描述,该模式定义了 gRPC 方法和有效负载消息,然后使用协议缓冲区为编组器生成绑定代码/序列化器。

但是,如果您愿意自己编写绑定代码(或使用可以编写的库),您可以使用自己的编组器/序列化器注册 gRPC 端点。如何做到这一点的确切细节会因平台/语言/库而异,但是是的:这是可能的。由于没有使用元数据(标头等)来解析编组器/序列化器,客户端和服务器都必须提前同意将用于有效负载的格式。

,

gRPC 协议与编组器/IDL 无关,但协议缓冲区是 gRPC 直接支持的唯一编组器。

我知道 FlatbuffersBond 支持 gRPC。可能还有其他人。

您可以自由支持自己喜欢的格式。这并不容易,但也不难;它主要涉及粘合代码和定义 gRPC 使用的 RPC 模式。 gRPC + JSON gRPC blog post 介绍了 grpc-java 的过程。每种语言都有点不同,必须单独支持。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。