我对Kafka的消费者有些迷惑。我可以使用各种模式来使用模式注册表中的一个主题吗?发布:完整架构:
{ Name: "", Sex: "", Phone: "", Address: "" }
消费:方案a:
{ Name: "", Phone:"" }
模式b:
{ Name: "", Sex:"", Address:"" }
cetgtptt1#
使用avro时,您有一个writer和reader模式。当读取器仅定义字段的子集时,这些字段按名称匹配,并且是唯一反序列化的字段
omhiaaxx2#
两边必须使用相同的模式。使用您的示例,使用schema a的反序列化程序不会知道需要跳过一些表示sex的字节才能到达表示phone的字节。反序列化程序的实现可以通过忽略该数据反序列化为没有sex字段的对象,但它必须知道字节数组包含该数据,这是模式提供的。
2条答案
按热度按时间cetgtptt1#
使用avro时,您有一个writer和reader模式。当读取器仅定义字段的子集时,这些字段按名称匹配,并且是唯一反序列化的字段
omhiaaxx2#
两边必须使用相同的模式。使用您的示例,使用schema a的反序列化程序不会知道需要跳过一些表示sex的字节才能到达表示phone的字节。
反序列化程序的实现可以通过忽略该数据反序列化为没有sex字段的对象,但它必须知道字节数组包含该数据,这是模式提供的。