使用各种 Avro 的模式来消费一个主题和一个模式

Using various Avro's schemas to consume one topic and one schema

我对 Kafka 的消费者有些混淆。我可以使用各种模式来使用模式注册表来使用一个主题吗?

发布:

完整架构:

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

消费:

架构 A:

{
    Name: "", 
    Phone:""
}

架构 B:

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

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

你必须在两边使用相同的架构。使用您的示例,使用模式 A 的反序列化程序不知道它需要跳过一些表示性别的字节才能到达表示 phone.

的字节

反序列化器的实现可以通过忽略该数据来反序列化为没有性别字段的对象,但它必须知道字节数组包含它,这是模式提供的。