数据结构 - Protocol Buffer
前言
习惯用Json、XML 数据存储格式的你们,相信大多都没听过Protocol Buffer
Protocol Buffer 其实是Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json、XML 真的强太多!
由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力
Protocol Buffer的性能好在哪里:
a. 序列化速度 & 反序列化速度快
b. 数据压缩效果好,即序列化后的数据量体积小
1. 定义
一种结构化数据的数据存储格式(类似于 XML、Json),简称protobuf 或者 PB
Google 出品 (开源)
Protocol Buffer 目前有两个版本:proto2 和 proto3
因为proto3还是beta 版,所以本次讲解是 proto2
2. 作用
通过将结构化的数据进行串行化(序列化),从而实现数据存储 / RPC 数据交换的功能
序列化: 将数据结构或对象转换成二进制串的过程
反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程
3. 特点
对比于常见的 XML、Json 数据存储格式,Protocol Buffer有如下特点:
4. 应用场景
传输数据量大 & 网络环境不稳定的数据存储、RPC数据交换的需求场景
如 即时IM (QQ、微信)的需求场景
5. 使用流程
1) 定义消息格式,编写.proto文件
2) 选择合适的protobuf实现框架,对.proto文件进行编译,生成对应的源代码文件
3) 在代码中调用生成的源代码文件,完成序列化和反序列化功能
具体请参考:快来看看Google出品的Protocol Buffer,别只会用Json和XML了
总结
在传输数据量较大的需求场景下,Protocol Buffer比XML、Json 更小、更快、使用 & 维护更简单!