安装请参考官方资料-快速开始,安装gRPC需要安装Go、protocol buffer、protoc-gen-go、gRPC等。
1.安装Go,grpc是用Golang开发的,所以需要安装Go;
2.下载protocol buffer,这是gRPC的协议编译工具,写好proto之后,需要用这个编译。windows下直接下载编译好的包,然后将bin目录加到环境变量
查看版本
protoc --version
3.安装相关插件:protoc-gen-go; 编译协议需要用到该包
export GO111MODULE=on # Enable module mode
go get github.com/golang/protobuf/protoc-gen-go
4.安装gRPC包
go get google.golang.org/grpc
5.编写gRPC协议
syntax = "proto3";
package test
// 定义 Req 消息结构
message Req {
// 类型 字段 = 标识号
string jsonStr = 1;
}
// 定义 Res 消息结构
message Res {
string backJson = 1;
}
// 可以定义多个服务,每个服务内可以定义多个接口
service Waiter {
// 定义接口 (结构体可以复用)
// 方法 (请求消息结构体) returns (返回消息结构体) {}
rpc DoMD5 (Req) returns (Res) {}
}
6.编译协议
protoc --go_out=plugins=grpc:./test/ ./test.proto
- 测试demo,最好使用官方demo
- 可能会遇到的问题
8.1.undefined: grpc.SupportPackageIsVersion6 和 undefined: grpc.ClientConnInterface 解决办法
这是因为grpc的版本和protoc-gen-go版本不一致造成的。删除这两个包。安装最新的即可。参考资料
go get -u google.golang.org/grpc
export GO111MODULE=on # Enable module mode
go get github.com/golang/protobuf/protoc-gen-go
8.2.protoc-gen-go-grpc:找不到程序或不可执行(protoc-gen-go-grpc: program not found or is not executable)
没有安装protoc-gen-go,也有可能是环境变量没生效(关闭shell客户端,重新打开即可)
export GO111MODULE=on # Enable module mode
go get github.com/golang/protobuf/protoc-gen-go
各种语言使用grpc指南:
1.Go
2.Python
3.C++
4.Java