天天看点

Protocol Buffer 简介

<code>protocol buffer</code> 和 <code>xml</code>、<code>json</code>一样都是<code>结构数据序列化</code>的工具,但它们的数据格式有比较大的区别: 首先,protocol buffer 序列化之后得到的数据不是可读的字符串,而是<code>二进制流</code> 其次,xml 和 json 格式的数据信息都包含在了序列化之后的数据中,不需要任何其它信息就能还原序列化之后的数据;但使用 protocol buffer 需要事先定义数据的格式(<code>.proto 协议文件</code>),还原一个序列化之后的数据需要使用到这个定义好的数据格式 最后,在传输数据量较大的需求场景下,protocol buffer 比 xml、json <code>更小(3到10倍)、更快(20到100倍)、使用 &amp; 维护更简单</code>;而且 protocol buffer 可以跨平台、跨语音使用
通过将结构化的数据(拥有多种属性)进行序列化,从而实现(内存与硬盘之间)数据存储和交换的功能 序列化: 按照 <code>.proto</code> 协议文件将<code>数据结构或对象</code>转换成<code>二进制流</code>的过程 反序列化:将在序列化过程中所生成的<code>二进制流</code>转换成<code>数据结构或对象</code>的过程
Protocol Buffer 简介

1、通过 protocol buffer 语法描述需要存储的数据结构

protocol buffer 定义数据格式的文件一般保存在 <code>.proto</code>文件中,每一个 <code>message</code>代表了一类结构化的数据,<code>message</code> 里面定义了<code>每一个属性的类型和名字</code>。

一个消息对象可以将<code>其他消息对象类型</code>用作<code>字段类型</code>,情况如下:

Protocol Buffer 简介

2、通过 protocol buffer 编译器编译 .proto 文件

作用:将 <code>.proto</code> 文件 转换成对应平台(python、c++、java)的代码文件 编译指令如下所示:

1、这是一份很有诚意的 protocol buffer 语法详解

2、手把手教你如何安装 protocol buffer