前面两个章节中讲了 怎么样抓包,怎么样用protobuf编译出py然后生成对应的消息。
这里将讲proto文件如何编译。要了解 proto如何编写,需要先了解为什么抖音要用protobuf协议,以及protobuf由什么优势和特点。
协议缓冲区(Protobuf)是Google开发的与语言无关的数据序列化格式。Protobuf之所以出色,原因如下:
- 数据量低: Protobuf使用二进制格式,该格式比JSON等其他格式更紧凑。
- 持久性: Protobuf序列化是向后兼容的。这意味着即使接口在此期间发生了更改,您也可以始终还原以前的数据。
- 按合同设计: Protobuf要求使用显式标识符和类型来规范消息。
- gRPC的要求: gRPC(gRPC远程过程调用)是一种利用Protobuf格式的高效远程过程调用系统。
就个人而言,我最喜欢Protobuf的是,如果强迫开发人员明确定义应用程序的接口。这是一个改变规则的游戏,因为它使所有利益相关者都能理解界面设计并为之做出贡献。
一个人具有某些固有的特征(例如年龄,性别,身高),还具有我们需要建模的某些外在特征(例如朋友,爱好)。让我们存储以下定义src/interfaces/person.proto
: