gRPC是什么?

gRPC是什么可以用官网的一句话来概括

A high-performance, open-source universal RPC framework

所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。如下图所示就是一个典型的RPC结构图。

与HTTP(Restful API)对比,gRPC的优势

与HTTP(Restful API)对比,gRPC的优势

gRPC和restful API都提供了一套通信机制,用于server/client模型通信,而且它们都使用http作为底层的传输协议(严格地说, gRPC使用的http2.0,而restful api则不一定)。不过gRPC还是有些特有的优势,如下:

  • gRPC可以通过protobuf来定义接口,可以有更加严格的接口约束条件,支持多种语言。
  • protobuf可以将数据序列化为二进制编码,这会大幅减少需要传输的数据量,从而大幅提高传输速度。
  • gRPC可以支持streaming流式通信(http2.0),提高传输速度。

 

扩展:

Protobuf:

Protobuf 实际是一套类似Json或者XML的数据传输格式和规范,用于不同应用或进程之间进行通信时使用。

相比较而言,Protobuf有如下优点:

  • 足够简单
  • 序列化后体积很小:消息大小只需要XML的1/10 ~ 1/3
  • 解析速度快:解析速度比XML快20 ~ 100倍
  • 多语言支持
  • 更好的兼容性,Protobuf设计的一个原则就是要能够很好的支持向下或向上兼容

http2.0:

理论上通过http2.0就可以使用streaming模式, 但是通常web服务的restful api似乎很少这么用,通常的流式数据应用如视频流,一般都会使用专门的协议如HLS,RTMP等,这些就不是我们通常web服务了,而是有专门的服务器应用。

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-03
  • 2022-12-23
  • 2021-09-19
  • 2021-11-28
  • 2021-11-21
  • 2022-02-20
猜你喜欢
  • 2021-09-30
  • 2021-07-02
  • 2021-05-16
  • 2021-06-03
  • 2021-05-26
相关资源
相似解决方案