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和orchestration工具。
所以我的问题是:在任何有效负载(CSV,XML,JSON等)下使用GRPC与HTTP2的实际优势是什么?
让我们跳过有关序列化的部分,因为正如我提到的protobuf是来自grpc的独立库
正如您所指出的,gRPC和Protobuf通常是混合使用的。尽管在大多数情况下,gRPC将使用protobuf作为IDL,并使用HTTP / 2作为传输,但这并非总是如此。
那么,gRPC可以自己提供什么价值?对于初学者来说,它提供了每种传输的经过实战检验的实现,以及对protobuf IDL的一流支持。整合这些东西并非易事。 gRPC将所有这些文件打包到一个漂亮的可插入盒中,因此您不必做繁琐的事情。
它还为您提供HTTP / 2本身不提供的功能。提供了可插拔的授权/认证,分布式跟踪工具,调试实用程序,后备负载平衡(包括即将支持的xDS协议)等。