gRPC
gRPC是Google发起的、开源的、高性能远程过程调用(RPC)框架系统,该系统基于HTTP/2协议传输,使用Protocol Buffer作为接口描述语言。
在gRPC中,客户端程序可以像调用函数一样地调用不同机器上的应用程序,其客户端和服务端可以在各种gRPC支持的语言的环境之间互相通信
Protocol Buffers
Protocol Buffers是谷歌发起的开源的, 语言无关、平台无关、可扩展的序列化结构化数据的协议。其具有性能好,效率高,且具有代码生成机制的优点,gRPC默认以Protocol Buffer作为接口描述语言。
gRPC和Go
gRPC支持多种语言,其中就包括golang,有关golang和grpc相关的官方资料详见google.golang.org和grpc-go。
Go插件安装
protoc-gen-go插件生成xxx.pb.go,protoc-gen-go-grpc插件生成xxx_grpc.pb.go。
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
$ export PATH="$PATH:$(go env GOPATH)/bin"
另外,在用到gateway的项目中还需要用到protoc-gen-grpc-gateway插件,参数校验可能用到protoc-gen-validate插件等。
至此,基本的gRPC开发环境就搭建好了,接下来就可以进行gRPC的项目开发了。