我是这个 Apache Avro(序列化框架)的新手。我知道什么是序列化,但为什么会有独立的框架,如 avro、thrift、protocol buffers 和
为什么我们不能使用 java 序列化 api 而不是这些单独的框架,java 序列化 api 是否存在任何缺陷。
下面的短语是什么意思 在 avro 或任何其他序列化框架中“不需要在架构更改时运行代码生成程序”。
请帮助我理解所有这些!!
最佳答案
Why cant we use java serialization api's instead of these separate frameworks, are there any flaws in java serializatio api's.
除非您另有所知,否则我假设您可以使用 Java 序列化。
不使用它的主要原因是
- 您知道存在性能问题。
- 您需要跨语言交换数据。 Java 序列化仅适用于 Java。
does not require running a code-generation program when a schema changes
我猜这意味着它可以读取旧模型或新模型的序列化数据,而无需重新生成和编译代码。即它可以容忍模型的变化。
顺便说一句:由于我使用的数据模型通常 a) 非常简单 b) 需要最高性能,所以我在不使用框架的情况下编写自己的序列化(或编写我自己的框架)这很好,前提是您的模型非常简单并且不会经常改变。
简而言之,除非您知道自己做不到,否则请先尝试 Java 序列化。
我对不同的 Serialization Methods 进行的比较
关于java - 数据序列化框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14257505/