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