JSON RPC with HTTP2 vs grpc 有什么区别?

Ale*_*rov 12 json json-rpc protocol-buffers http2 grpc

我不喜欢同时做很多事情的工具。所以 GRPC 在我看来是开销,就像 kubernetes。GRPC 实际上是结合了两件事的工具:扩展的 Protobuf(服务支持)和 HTTP2。

我读了很多文章,说使用 GRPC 对性能来说非常棒。而且有两个原因

  • 使用protobuf,它比json或xml小。
  • GRPC 使用 HTTP2 作为传输协议

这是主要部分:protobuf 和 HTTP2是独立的项目、工具等。有了这种理解,我可以说 GRPC 只不过是结合了几种不同的工具,比如 kubernetes 结合了 docker 和编排工具。

所以我的问题是:w ^帽的实际使用GRPC VS HTTP2任何有效载荷(CSV,XML,JSON等)的优势。

让我们跳过有关序列化的部分,因为正如我提到的 protobuf 是来自 grpc 的独立库

Ric*_*lle 7

正如您所指出的,gRPC 和 Protobuf 经常被混为一谈。虽然在绝大多数情况下,gRPC使用 protobuf 作为 IDL,使用 HTTP/2 作为传输,但情况并非总是如此

那么,gRPC 本身提供了什么价值?对于初学者来说,它提供了每种传输经过实战测试的实现,以及对 protobuf IDL 的一流支持。整合这些东西并非易事。gRPC 将所有这些都打包到一个漂亮的可插拔盒子中,这样您就不必进行繁琐的工作。

它还为您提供了 HTTP/2 本身没有的功能。提供了可插入的授权/身份验证分布式跟踪工具调试实用程序后备负载平衡(包括即将对 xDS 协议的支持

  • 真的很棒的答案。看来你对 gRPC 很了解。我很想听到一些关于 JSON-RPC 用例和优点的好消息。 (2认同)
  • 最终的问题是,并非 grpc 的每种语言实现都具有所有这些功能。就像节点 grpc 库不支持承诺和服务器端拦截器...等。因此,虽然 GRPC 协议可能有支持,但实现可能缺乏它们。 (2认同)