使用各种avro的模式来使用一个主题和一个模式

4ioopgfo  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(393)

我对Kafka的消费者有些迷惑。我可以使用各种模式来使用模式注册表中的一个主题吗?
发布:
完整架构:

{
    Name: "",
    Sex: "",
    Phone: "",
    Address: ""
}

消费:
方案a:

{
    Name: "", 
    Phone:""
}

模式b:

{
    Name: "",
    Sex:"", 
    Address:""
}
cetgtptt

cetgtptt1#

使用avro时,您有一个writer和reader模式。当读取器仅定义字段的子集时,这些字段按名称匹配,并且是唯一反序列化的字段

omhiaaxx

omhiaaxx2#

两边必须使用相同的模式。使用您的示例,使用schema a的反序列化程序不会知道需要跳过一些表示sex的字节才能到达表示phone的字节。
反序列化程序的实现可以通过忽略该数据反序列化为没有sex字段的对象,但它必须知道字节数组包含该数据,这是模式提供的。

相关问题