Protobuf的简要介绍及使用详解

  

  

在官方文档中可以看到

  
协议缓冲区是一种语言无关,平台无关,可扩展的序列化结构数据的方法,它可用于(数据)<强>通信协议,数据存储等。协议缓冲区是一种灵活、高效、自动化机制的结构数据序列化方法,可类比XML,但是比XML <强>更小强(3 ~ 10倍),<强>更快(20 ~ 100倍),更为<强>简单   

可以看到protobuf 与json相比具有<强>压缩比高 <>强,解压缩速度更快强的优点,,

  

  

protobuf在使用上较为复杂,过程可以分为以下几步:

  
      <李>,编写java 的POJO类李   <李>通过工具将java的POJO类,生成protobuf数据格式下的(在想法中可以下载Pojo2Proto插件)   <李>新建一个以.proto的文件,并写入Pojo2Proto插件生成数据李   <李>通过proto.exe程序将.proto文件编译生成java类,该java类中定义有PB对该类的数据格式定义,获?设置操作,解/压锁数据的方法   
  

POJO类数据:

        公共类实体{   私人字符串键;   私人字符串值;   公共字符串getKey () {   返回键;   }   公共空间setKey (String键){   这一点。键=键;   }   公共字符串getValue () {   返回值;   }   公共空间setValue(字符串值){   这一点。值=https://www.yisu.com/zixun/value;   }   }      

,,,生成的protobuf的数据:

        语法=" proto3”;      {消息实体   字符串键=1;   字符串值=https://www.yisu.com/zixun/2;   }      

<强>通过protoc.exe进行编译

  

在原型。exe的下载地址https://repo1.maven.org/maven2/com/google/protobuf/protoc/编译Entity.proto文件

  
<强> protoc-3.9.2-windows-x86_64.exe ;。/src/main/原型/实体。原型——java_out=?src/main/java/src/   

编译后生成有<强>实体 <强> OuterClass 强类的文件,,通过<强>实体 <强> OuterClass类压缩数据

        StreamWrap.Entity。Builder构建器=StreamWrap.Entity.newBuilder ();//构造数据   builder.setKey (“123”);   builder.setValue (“123”);   StreamWrap。实体实体=builder.build ();//将该铅类转换为二进制数据格式   byte[]迷=entity.toByteArray ();      

通过<强>实体 <强> OuterClass类强解压缩数据

  

  

到此这篇关于Protobuf的简要介绍及使用的文章就介绍到这了,更多相关Protobuf使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

Protobuf的简要介绍及使用详解