2020-01-06-gRPC

why

gRPC是任何环境都可以运行的高性能开源框架,他可以通过pluggable support来高效实现负载均衡,心跳检测和授权,他也可以应用于分布式计算的最后一个流程(连接各个端到后端)

  • 简单的服务定义
  • 快速启动易扩展
  • 跨语言,跨平台
  • 双向流和鉴权

feature

  • gRPC可以通过protobuf来定义接口,从而可以有更加严格的接口约束条件。关于protobuf可以参见笔者之前的小文Google Protobuf简明教程

  • 另外,通过protobuf可以将数据序列化为二进制编码,这会大幅减少需要传输的数据量,从而大幅提高性能。

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

node

1
2
3
4
5
6
$ # Clone the repository to get the example code
$ git clone -b v1.25.0 https://github.com/grpc/grpc
$ # Navigate to the dynamic codegen "hello, world" Node example:
$ cd grpc/examples/node/dynamic_codegen
$ # Install the example's dependencies
$ npm install