protobuf
ProtoBuf (Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域。以 .proto为后缀,有自己的编译器。
1-安装并添加环境变量:
-
https://github.com/protocolbuffers/protobuf/releases下载安装包
-
下载解压后在bin目录下有程序:protoc.exe
# 把bin目录添加到环境变量, 如:D:\CurriculumNeeds\SelfTaught\19go\bin
# 添加环境变量后,cmd查看版本:输出:libprotoc 3.19.4
protoc --version
2-准备中间文件 xxx.proto
// 如:中间文件所在目录:src/proto/jhfs.proto
syntax="proto3";
package services;
message ProdRequest {
int32 prod id =1; //传入的商品 1=确认顺序
}
message ProdResponse{
int32 prod stock=1;//商品库存
}
3-添加go编译器插件
# 安装插件 会在GOPATH的bin目录下生成可执行文件. protobuf的编译器插件protoc-gen-go.exe等下执行protoc命令时就会自动调用这个插件
go get github.com/golang/protobuf/protoc-gen-go
4- protoc编译.proto为go文件件
# 将中间文件生成为grpc的go文件
protoc --go_out=./src/proto ./src/jhfs.proto # 这个生成后没有client 用如下命令
protoc --go_out=plugins=grpc:./src/proto/ ./src/proto/jhfs.proto