我最近阅读了一篇关于协议缓冲区的文章。
协议缓冲区是一种序列化结构化数据的方法。它在开发程序用于通过网络进行通信或存储数据时非常有用。该方法涉及一个接口描述语言,描述一些数据的结构以及从该描述生成源代码的程序,用于生成或解析表示结构化数据的字节流。
我想知道的是,在哪里可以使用它们? 除了简单的地址簿示例之外,是否有实际的使用案例?例如,它是否用于预缓存数据库的查询结果?
我最近阅读了一篇关于协议缓冲区的文章。
协议缓冲区是一种序列化结构化数据的方法。它在开发程序用于通过网络进行通信或存储数据时非常有用。该方法涉及一个接口描述语言,描述一些数据的结构以及从该描述生成源代码的程序,用于生成或解析表示结构化数据的字节流。
我想知道的是,在哪里可以使用它们? 除了简单的地址簿示例之外,是否有实际的使用案例?例如,它是否用于预缓存数据库的查询结果?
Protocol Buffers是一种数据存储和交换格式,特别用于程序或计算机之间的RPC通信。
其他选择包括语言特定的序列化(Java序列化、Python pickles等)、表格格式如CSV和TSV、结构化文本格式如XML和JSON以及其他二进制格式如Apache Thrift。从概念上讲,它们都只是表示结构化数据的不同方式,但在实践中,它们有不同的优缺点。
Protocol Buffers 的特点包括:
.proto
编译器。通过将结构与数据分离,协议缓冲区可以变得精简高效,但这意味着如果没有相关的.proto
文件和像protoc
这样的工具来生成解析代码,则proto格式的任意数据都无法使用。这使得proto成为向其他可能没有.proto
文件的人发送数据的不良选择。对于不同格式,可以做出一些概括性的描述:
谷歌以协议缓冲区 几乎涵盖了他们所做的一切。如果您能想象需要存储或传输数据的原因,谷歌可能会使用协议缓冲区。