Protobuf的入门

2018/03 13 20:03

Protobuf的优点:

  1. 在谷歌内部长期使用,产品成熟度高
  2. 跨语言\支持多种语言,包括C++\Java和Python
  3. 编码后的消息更小,更加有利于存储和传输
  4. 编解码的性能非常高
  5. 支持不同协议版本的前向兼容
  6. 支持定义可选和必选字段

Protobuf开发环境搭建

第一种方式:

下载protoc.zip进行解压,解压后如下图

(下载地址https://download.csdn.net/download/fuchenggangs/10283691)

protoc.exe工具主要根据.proto文件生成代码.命令如下:

protoc.exe -I=d:/tmp --java_out=d:/tmp d:/tmp/monitor_data.proto

第二种方式:IDEA中使用

(1) proto文件语法高亮显示,需要安装Protobuf Support插件.依次点击Intellij中

的“File”-->"Settings"-->"Plugins"-->"Browse repositories",如下所示:

(2) 将.proto文件转成Java类,通过maven轻松搞定

(3) 编译生成Java类

使用maven的编译命令,即可在target中看到根据.proto文件生成的Java类,如下所示:

下面我们以商品订购历程为例,定义SubscribeReq.proto和SubscribeResp.proto,数据文件定义如下:

测试代码如下:

运行结果:

运行结果表明,经过Protobuf编解码后,生成的SubscribeReqProto.SubscribeReq与编码前原始的等价

--转载请注明: https://www.guangboyuan.cn/protobuf%e7%9a%84%e5%85%a5%e9%97%a8/

发表回复

(必填)