文章主题来源于英文源文档 -> Apache Avro™ 1.11.0 文档
Apache Avro™ 是一个数据序列化(data serialization)框架
Avro 提供如下:
Avro 依赖于模式。读取 Avro 数据时,写入时使用的模式始终存在。这允许在没有每个值开销的情况下写入每个数据,从而使序列化既快速又小。这也便于使用动态脚本语言,因为数据及其模式是完全自描述的。
当 Avro 数据存储在文件中时,它的模式也随之存储,以便以后任何程序都可以处理文件。如果读取数据的程序需要不同的模式,这很容易解决,因为两种模式都存在。
在 RPC 中使用 Avro 时,客户端和服务器在连接握手中交换模式(这可以优化,使得对于大多数调用,实际上并不传输模式)。由于客户端和服务器都具有对方的完整模式,因此可以轻松解决相同命名字段之间的对应关系,缺少字段,额外字段等.
Avro 模式是用 JSON 定义的。这有助于在已经具有 JSON 库的语言中实现。
Avro 提供类似于 Thrift、Protocol Buffers 等系统的功能。Avro 在以下基本方面与这些系统不同