首页 > 解决方案 > Grpc 我什么时候应该使用 json 编码而不是通常的编码?

问题描述

据我了解,grpc 有它自己的编码机制,可以压缩它并使其比 json 快得多。Grpc proto 3 引入了 JSON 编码,我认为这会使事情变慢,并且可能与 http/2 上的通常 rest api 没有太大区别。

在任何情况下我可能会为 grpc 使用 json 编码?

标签: grpc

解决方案


Protobufs 支持 JSON 映射,以方便在 JSON 和 Protobufs 消息之间进行转换。看:

https://developers.google.com/protocol-buffers/docs/proto3#json

但是(!)二进制“有线格式”编码保持不变。

JSON 映射的原因是,JSON 的流行(部分原因是它在 REST API 中的使用)使得想要在 JSON 和 Protobuf 消息之间转换数据变得相当普遍。JSON 映射可用于自动化此过程;进一步减少开发人员的工作量。

这很有用的一个示例是,当构建使用 Protobufs(默认)但希望为那些尚未准备好进行移动的客户端提供基于 REST 的 API 作为 gRPC 服务代理的 gRPC API 时。


推荐阅读