Kafka Streams:POJO serialize/deserialize 向后兼容性

Kafka Streams: POJO serialize/deserialize backward compatibility

serialVersionUID是否可以在扩展Kafka接口Serializer/Deserializer(org.apache.kafka.common.serialization)的class中定义,类似于我们用Serializable实现的?在 Java/Kafka 升级期间,我们会遇到异常 - NotSerializableException 吗?

例如,在 KTable 中,key/value 使用自定义 class 对象进行序列化。因此,如果我们保留了一些数据,并且如果对 Kafka 或 Java 或两者进行了任何升级,我们是否能够读取(反序列化)在升级之前保留的 key/value,没有任何向后兼容性约束?

参考: What is a serialVersionUID and why should I use it?

如果您编写自定义 Kafka Serializer/Deserializer,则无需指定 Java 的 serialVersionUID。你仍然可以这样做,但它不会被使用。

Java 的 serialVersionUID 的目的是使用 Java 的内置序列化机制。但是当你为 Kafka 实现自定义 Serializer/Deserializer 时,不会使用这种机制。