数据序列化框架

pra*_*mav 5 java serialization avro

我是这个Apache Avro(序列化框架)的新手.我知道序列化是什么,但为什么有单独的框架,如avro,thrift,协议缓冲区和

  1. 为什么我们不能使用java序列化api而不是这些单独的框架,java serializatio api中是否有任何缺陷.

  2. 在avro或任何其他序列化框架中,以下短语"不需要在架构更改时运行代码生成程序"是什么意思.

请帮我理解这些!!

Pet*_*rey 3

为什么我们不能使用 java 序列化 api 来代替这些单独的框架,java 序列化 api 中是否存在任何缺陷?

我假设您可以使用 Java 序列化,除非您不知道。

不使用它的主要原因是

  • 你知道存在性能问题。
  • 您需要跨语言交换数据。Java 序列化仅适用于 Java。

当架构更改时不需要运行代码生成程序

我猜测这意味着它可以使用较旧或较新的模型读取序列化数据,而无需重新生成和编译代码。即它可以容忍模型的变化。

顺便说一句:由于我使用的数据模型通常a)非常简单b)需要最大的性能,我在不使用框架的情况下编写了自己的序列化(或编写我自己的框架)如果您的模型非常简单并且不会经常改变。

简而言之,除非您知道自己不能,否则请先尝试 Java 序列化。

我对不同序列化方法进行的比较