目标是引入一种传输和应用程序层协议,该协议的延迟和网络吞吐量都更好。当前,该应用程序将REST与HTTP / 1.1结合使用,并且我们遇到了高延迟。我需要解决此延迟问题,并且愿意使用gRPC(HTTP / 2)或REST / HTTP2。
HTTP / 2:
- 多路复用
- 单TCP连接
- 二进制而不是文本
- 标头压缩
- 服务器推送
我知道上述所有优点。问题1:我可以肯定,如果我将REST与HTTP / 2一起使用,与使用HTTP / 1.1的REST相比,我将获得显着的性能提升,但是与gRPC(HTTP / 2)相比又如何呢?
我也知道gRPC使用原始缓冲区,这是在网络上传输结构化数据的最佳二进制序列化技术。Proto缓冲区还有助于开发不可知的语言方法。我同意这一点,并且可以使用graphQL在REST中实现相同的功能。但是我担心的是序列化:问题2:当HTTP / 2实现此二进制功能时,使用原型缓冲区是否能在HTTP / 2之上带来更多优势?
问题3:在双向流传输用例方面,gRPC(HTTP / 2)与(REST和HTTP / 2)相比如何?
有这么多的博客/视频出像比较GRPC(HTTP / 2)(REST和HTTP / 1.1)互联网这个。如前所述,我想知道在比较GRPC(HTTP / 2)和(REST与HTTP / 2)方面的区别和好处。