Go 集成 GRPC

in Code with 0 comment

安装代码生成工具

安装 Protocol buffer 编译器

这里直接使用预编译好的二进制文件,直接去仓储的 Release 地址下载。

把下载下来的文件放到目录中,并在环境变量中添加该目录,目的是为了可以自由的在 cli 下访问该命令文件。

protoc 命令跟具体编程语言无关。

下面 PB 特指 Protocol Buffers。

安装生成 Go 代码的 PB 插件

这里直接通过 Go 自身安装,安装后的文件存储在 GOPATH/bin 目录下,可以使用 go env 来确认具体是哪个目录。

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

这里同样需要把 GOPATH/bin 目录添加到系统环境变量中,以方便命令行读取。

注意不要修改文件的名称。protoc 通过 protoc-gen- 前缀来查找插件。

生成 Go 代码

使用以下命令生成 Go 代码:

protoc --go_out=./spec --go-grpc_out=./spec --go-grpc_opt=require_unimplemented_servers=false proto/hello.proto
注意在编写 proto 文件时添加 option go_package = "./;spec"; 这一行,来指定生成代码所在的包。

demo

命令选项说明

在不加 require_unimplemented_servers=false 选项时,生成的 Go 接口,在重写的时候必须要内嵌 Unimplementedxxx 结构体,否则会出现未实现接口的警告。

参考资料

Comments are closed.