protocol buffer 是 google 的一个开源项目,它是用于结构化数据串行化的灵活、高效、自动的方法,例如 XML,不过它比 xml 更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。

1. 特点

Protocol Buffer 的序列化 & 反序列化简单 & 速度快的原因是:

  1. 编码 / 解码 方式简单(只需要简单的数学运算 = 位移等等)
  2. 采用 Protocol Buffer 自身的框架代码 和 编译器 共同完成Protocol Buffer 的数据压缩效果好(即序列化后的数据量体积小)的原因是:
  • 采用了独特的编码方式,如 Varint、Zigzag 编码方式等等
  • 采用 T - L - V 的数据存储方式:减少了分隔符的使用 & 数据存储得紧凑

image.png