工具安装
protoc
访问protoc release,根据系统型号,下载对应版本的protoc工具,并将下载到的可执行文件存放于$path
中
安装完成后,可通过
protoc --version
指令校验是否安装成功
protoc --version
# 输出:
# libprotoc 30.0
protoc-gen-go
protoc-gen-go
能够基于.proto
文件一键生成_pb.go
文件,对应内容为通信请求/响应参数
的对象模型.
安装指令:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
安装完成后,可通过
protoc-gen-go --version
校验是否安装成功
protoc-gen-go --version
# 输出:
# protoc-gen-go v1.36.5
protoc-gen-go-grpc
protoc-gen-go-grpc
能够基于.proto
文件生成_grpc.pb.go
,对应内容为通信服务
框架代码.
安装指令:
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
安装完成后,可通过
protoc-gen-go-grpc --version
校验是否安装成功
protoc-gen-go-grpc --version
# 输出:
# protoc-gen-go-grpc 1.5.1
go第三方库grpc
go get google.golang.org/grpc@latest
工具使用
- 进入pb文件所在目录
protoc --go_out=. --go-grpc_out=. xxxxx.proto
可以观察到生成的如下文件:xxx.pb.go xxx.grpc.pb.go
注意事项
- grpc版本老旧
项目使用的google.golang.org/grpc
比较旧时,可能会不存在grpc.StaticMethod()
方法,需手动升级项目依赖的版本go get -u google.golang.org/grpc
- 框架老旧
工具生成代码的版本可能与项目依赖版本不一致,需手动升级项目框架版本,如,当项目中使用到kratos时,旧版本的kratos和新版本工具的依赖会不兼容,需手动升级kratos版本go get -u github.com/go-kratos/kratos/v2