grpc介绍
gRPC 是一个高性能、开源、通用的RPC框架,由Google推出,基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。
在gRPC客户端可以直接调用不同服务器上的远程程序,使用姿势看起来就像调用本地程序一样,很容易去构建分布式应用和服务。和很多RPC系统一样,服务端负责实现定义好的接口并处理客户端的请求,客户端根据接口描述直接调用需要的服务。客户端和服务端可以分别使用gRPC支持的不同语言实现。
应用场景
- 低延时、高可用的分布式系统;
- 移动端与云服务端的通讯;
- 使用protobuf,独立于语言的协议,支持多语言之间的通讯;
- 可以分层扩展,如:身份验证,负载均衡,日志记录,监控等。
- 微服务等等
grpc安装
linux
yum install protobuf-compiler
[root@localhost grpc]# protoc --version
libprotoc 3.5.0
go env -w GOBIN="/root/go/bin"
vim /etc/profile 在文件最后一位 添加 export PATH=$PATH:/root/go/bin
source /etc/profile
#在/root/go/bin
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
# 注意在 proto 当前目录
protoc --go_out=. --go-grpc_out=. ./*.proto
windows
https://github.com/protocolbuffers/protobuf/releases
下载window版本
protobuf 设置环境变量
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
# 注意在 proto 当前目录
protoc --go_out=. --go-grpc_out=. ./*.proto