protobuf简介
Protobuf 是 Protocol Buffers 的简称,它是 Google 公司开发的一种数据描述语言,是一种轻便高效的结 构化数据存储格式,可以用于结构化数据,或者说序列化。它很适合做数据存储 或 RPC 数据交换格 式 。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。他是一 种灵活,高效,自动化的机制,用于序列化结构化数据,对比于 XML 和 JSON ,他更小,更快、更简 单。总之他是微服务中需要使用的东西。
Protobuf 刚开源时的定位类似于 XML 、 JSON 等数据描述语言,通过附带工具生成代码并实现将结构化 数据序列化的功能。这里我们更关注的是Protobuf 作为接口规范的描述语言,可以作为设计安全的跨语 言RPC 接口的基础 工具。
需要了解两点1. protobuf 是类似与 json 一样的数据描述语言(数据格式)2. protobuf 非常适合于 RPC 数据交换格式
protobuf的优势和劣势:
优势:
1 :序列化后体积相比 Json 和 XML 很小,适合网络传输2 :支持跨平台多语言3 :消息格式升级和兼容性很好4 :序列化反序列化速度很快,快于 Json 的处理速度
劣势:
1 :应用不够广 ( 相比 xml 和 json)2 :二进制格式导致可读性差3 :缺乏自描述
protobuf的安装
1 、安装 protobuf
GitHub - protocolbuffers/protobuf: Protocol Buffers - Google's data interchange format
点击latest,然后找到win-64的压缩包
下载后解压,添加到环境变量
我的安装目录:D:\protoc-25.3-win64\bin
环境变量打开:我的电脑->右键属性-》高级系统设置-》环境变量-》系统变量-》找到path-》编辑-》保存即可
win+r,打开cmd,输入
protoc --version
显示版本即可
protobuf的go语言插件protoc-gen-go插件
go install github.com/golang/protobuf/protoc-gen-go@latest