一、 Protobuf 介绍
1.1 诞生背景
常用的数据格式是 JSON,XML,或者 YAML,这些都是文本格式,特点是容易被人识别,非常容易编程,缺点是数据量有点大。在某些特定场景下,比如帧同步、各个应用之间的同步信息,这样的场景往往是并发高、发送/接收密集,假如用 JSON/XML 来传输,那么性能上就会大受影响。
所以能否有另外一种数据传输格式有效解决这个问题,这就是 Protobuf 上场的原因。
1.2 Protobuf 是什么?
Protobuf 是 Protocal Buffers 的简称,是 Google 研发的一种数据传输格式。
Protobuf 是采用字节流的方式进行传输,通过一些数据格式约定使得比 JSON 的传输量大为减少。
个人认为,在项目开发中为了各种方便,绝大多数场景下都优先考虑 JSON 格式等其他容易编程的数据传输格式。因为 Protobuf 的格式对于编程、维护都太麻烦 了。
这大概就是为什么 Protobuf 出来了这么多年,但是不流行的原因,因为可以用的场景太少太少。
二、生成proto对象文件
2.1 下载编译器
编译器下载地址
https://github.com/protocolbuffers/protobuf/releases
选择自己需要的版本下载即可,
这里下载的是 win64 3.19.4,下载之后进行解压
2.2 检查是否可用
2.3 使用protoc.exe生成java文件
将写好的message.proto文件,移动到与protoc.exe同级目录
使用cmd,编辑文本protoc.exe --java_out=./ message.proto
生成java文件,在以下目录 。
将它移动到项目的目录中,即可使用。
2.4 使用IDEA插件生成java文件
安装这两个插件即可,安装之后重启 idea
2.4.1 安装 protobuf 相关插件 - Protocal Buffer Editor
这个插件使得 idea 支持我们的 proto 语法,例如关键词高亮等功能
2.4.2 安装 protobuf 相关插件 - Protobuf Generator
一个是根据 .proto 文件来生成 proto 对象
(1)无法直接生成proto 对象
(2)点击工具 - Configure GenProtobuf 按钮 ,按照下面提示配置 相对应目录路径等。
注意正确的填写输出物的地址,否则会多很多文件夹。。
没配置好会提示如下:Exception
(4)执行Generate all Protobufs按钮
生成如下文件