apache-kafka - Kafka Streams:POJO 序列化/反序列化向后兼容性
问题描述
是否可以在扩展Kafka接口Serializer/Deserializer(org.apache.kafka.common.serialization)的类中定义serialVersionUID,类似于我们用Serializable实现的那个?在 Java/Kafka 升级期间,我们会遇到异常 - NotSerializableException 吗?
例如,在 KTable 中,键/值是使用自定义类对象序列化的。因此,如果我们保留了一些数据,并且如果对 Kafka 或 Java 或两者都进行了任何升级,我们是否能够读取(反序列化)在升级之前保留的键/值,而没有任何向后兼容性限制?
解决方案
如果您编写自定义 Kafka Serializer
/Deserializer
则无需指定 Java 的serialVersionUID
. 你仍然可以这样做,但它不会被使用。
Java 的目的serialVersionUID
是使用 Java 内置的序列化机制。但是当您为 Kafka实现自定义Serializer
/时,不会使用此机制。Deserializer
推荐阅读
- typescript - 打字稿:传递参数
泛型函数类型参数的元组作为可变参数 - c# - Entity Framework Core:创建视图模型时如何加载数据?
- swift - SwiftUI 自定义视图接受带有 ID 的视图?
- c - C 代码:将字符串从一个函数传递到另一个函数
- sql - SAP Sybase WHILE 在 FOR LOOP 内
- r - 从另一个随机选择其一些值但按顺序且所选值之间的距离最小的向量创建一个向量?
- api - 去中心化交易所行情:如何检索实时行情?
- asp.net-core - 如何在 ASP.NET Core MVC 中显示错误消息?
- c++ - 不带引号的 LLDB 摘要字符串
- android - Android 位置 GPS 追踪