Kafka存储的Avro记录向后架构兼容性

时间:2018-11-08 16:07:22

标签: avro apache-kafka-streams rocksdb

有关Avro向后兼容性和rocksdb本地存储的问题:

让我们假设我使用一个主题作为实现到rockdb存储中的全局表。然后,我可以执行store.get(K)来检索V。现在,我必须重新部署流应用程序,以保持相同的本地存储,但是使用新版本的K的Avro模式,其中包括一个新的可选字段。如果我现在使用使用新版本的Avro进行了序列化的K查找(假设新的可选字段设置为null),我是否应该仍然能够从本地存储中检索第一个K版本下已经存在的V?

我以为这应该可以工作,但是查找总是返回null。我可以通过遍历商店来打印以前的K,V列表,并且可以看到持久存储的K确实与我在执行store.get(K)时所使用的K看起来完全一样。尽管Avro旨在向后兼容,但是在更改架构时我们必须删除并重新创建商店是正常的吗?

0 个答案:

没有答案