JSON RPC with HTTP2 和 grpc 有什么区别?
What the difference between JSON RPC with HTTP2 vs grpc?
我不喜欢同时做很多事情的工具。所以 GRPC 在我看来是开销很大的,它就像 kubernetes。
GRPC 是实际上结合了两个东西的工具:扩展的 Protobuf(服务支持)和 HTTP2。
我看了很多文章说使用 GRPC 对性能来说很棒。还有两个原因
- 使用了protobuf,它小于json或xml。
- GRPC 使用 HTTP2 作为传输协议
这是主要部分:protobuf 和 HTTP2 是独立的 项目、工具等等。有了这种理解,我可以说 GRPC 只是结合了几种不同的工具,比如 kubernetes 结合了 docker 和编排工具。
所以我的问题是:W对于任何负载(CSV、XML、JSON 等),使用 GRPC 与 HTTP2 相比有什么实际优势。
让我们跳过关于序列化的部分,因为正如我提到的,protobuf 是独立于 grpc 的库
正如您所指出的,gRPC 和 Protobuf 经常被混为一谈。虽然在绝大多数情况下,gRPC 将 使用 protobuf 作为 IDL 并使用 HTTP/2 作为传输,this is not always the case.
那么,gRPC 本身能提供什么价值呢?对于初学者,它为每种传输提供了久经考验的 实现 ,以及对 protobuf IDL 的首次 class 支持。整合这些东西并非易事。 gRPC 将所有这些打包到一个漂亮的可插拔盒子中,因此您无需进行跑腿工作。
它还为您提供 HTTP/2 本身所没有的功能。 Pluggable authorization/authentication, distributed tracing instrumentation, debugging utilities, look-aside load balancing (including upcoming support for the xDS protocol), and more 已提供。
我不喜欢同时做很多事情的工具。所以 GRPC 在我看来是开销很大的,它就像 kubernetes。 GRPC 是实际上结合了两个东西的工具:扩展的 Protobuf(服务支持)和 HTTP2。
我看了很多文章说使用 GRPC 对性能来说很棒。还有两个原因
- 使用了protobuf,它小于json或xml。
- GRPC 使用 HTTP2 作为传输协议
这是主要部分:protobuf 和 HTTP2 是独立的 项目、工具等等。有了这种理解,我可以说 GRPC 只是结合了几种不同的工具,比如 kubernetes 结合了 docker 和编排工具。
所以我的问题是:W对于任何负载(CSV、XML、JSON 等),使用 GRPC 与 HTTP2 相比有什么实际优势。
让我们跳过关于序列化的部分,因为正如我提到的,protobuf 是独立于 grpc 的库
正如您所指出的,gRPC 和 Protobuf 经常被混为一谈。虽然在绝大多数情况下,gRPC 将 使用 protobuf 作为 IDL 并使用 HTTP/2 作为传输,this is not always the case.
那么,gRPC 本身能提供什么价值呢?对于初学者,它为每种传输提供了久经考验的 实现 ,以及对 protobuf IDL 的首次 class 支持。整合这些东西并非易事。 gRPC 将所有这些打包到一个漂亮的可插拔盒子中,因此您无需进行跑腿工作。
它还为您提供 HTTP/2 本身所没有的功能。 Pluggable authorization/authentication, distributed tracing instrumentation, debugging utilities, look-aside load balancing (including upcoming support for the xDS protocol), and more 已提供。