protobuf是谷歌开源的一种数据格式,适合高性能,对响应速度有要求的数据传输场景。因为profobuf是二进制数据格式,需要编码和解码。数据本身不具有可读性。因此只能反序列化之后得到真正可读的数据。
优势:
1. 序列化后体积相比Json和XML很小,适合网络传输
2. 支持跨平台多语言
3. 消息格式升级和兼容性还不错
4. 序列化反序列化速度很快
第一步:下载通用编译器
地址:https://github.com/protocolbuffers/protobuf/releases
根据不同的操作系统,下载不同的包,我是windows电脑,解压出来是protoc.exe
第二步:配置系统环境变量
第三步:安装go专用的protoc的生成器
在GOPATH
目录下执行
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
安装后会在GOPATH
目录下的src下生成可执行文件,protobuf的编译器插件protoc-gen-go
,执行protoc
命令会自动调用这个插件
如何使用protobuf呢?
- 定义了一种源文件,扩展名为
.proto
,使用这种源文件,可以定义存储类的内容(消息类型)
- protobuf有自己的编译器
protoc
,可以将 .proto
编译成对应语言的文件,就可以进行使用了