Kafka Consumer更新时,如何对avro模式中的字段进行版本设置



示例:-我有一个名为的字段

"abc":[
{"key1":"value1", "key2":"value2"}, 
{"key1":"value1", "key2":"value2"}
]

Consumer1,consumer2消耗这个变量,其中consumer2现在只需要几个字段,并且需要更改结构。

如何通过遵循最佳实践来解决这个问题?

您可以在Avro模式中使用type mapkey总是string,而value可以是任何类型,但对于整个映射应该是一种类型。

因此,在您的情况下,将映射引入到您的模式中。CCD_ 5可以使用该事件并获得仅CCD_ 6所需的密钥,而对CCD_ 7也可以这样做。但仍然是Avro模式。

注意:您不能将null发送到schema中的映射。你需要发送空地图

如果可能的话,引入Schema Registry服务器进行模式版本控制。在模式注册表中注册所有不同的avro模式,并给出版本Id。将生产者和消费者应用程序与模式注册服务器连接,以获取相应Kafka消息的注册模式。现在,任何消费者都可以完全兼容地接收到具有任何类型模式的消息。

最新更新