protobuf与gprc结合使用
1、安装protobuf
我下载的是windows版本
下载之后解压,然后配置环境变量
2、安装protoc-gen-go和protoc-gen-go-grpc
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
3、根据proto文件生成go文件
先准备一个proto文件
然后执行命令
protoc --go_out=. person.proto
protoc --go-grpc_out=. person.proto
执行完会生成person.pb.go , person_grpc.pb.go
注意:两个命令都要执行,如果只执行第二个命令,生成的文件会报错,找不到对应的结构体。如果只执行第一个命令,则不会生成对应的gprc服务代码。
注意:通过go-grpc_out命令生成的代码中,有一个 mustEmbedUnimplementedXXXXServer 的方法,好像是官方为了解决向前兼容性问题,可以通过设置 require_unimplemented_servers=false 来解决,即上面的命令变成
protoc --go-grpc_out=require_unimplemented_servers=false:. person.proto