Apache kafka 使用各种Avro';s模式使用一个主题和一个模式

Apache kafka 使用各种Avro';s模式使用一个主题和一个模式,apache-kafka,apache-nifi,avro,confluent-schema-registry,Apache Kafka,Apache Nifi,Avro,Confluent Schema Registry,我对卡夫卡的消费者有些困惑。我可以使用各种模式使用模式注册表中的一个主题吗 发布: 完整架构: { Name: "", Sex: "", Phone: "", Address: "" } 消费: 模式A: { Name: "", Phone:"" } 模式B: { Name: "", Sex:"", Address:"" } 当使用Avro时,您有一个writer和reader模式。当读取器仅定义字段子集时,这些字

我对卡夫卡的消费者有些困惑。我可以使用各种模式使用模式注册表中的一个主题吗

发布:

完整架构:

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

模式A:

{
    Name: "", 
    Phone:""
}
模式B:

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

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

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


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

因为我有更多的应用程序使用数据,每个应用程序都需要权限控制,它能实现吗?我不理解问题这意味着有人应该使用模式A来消费数据,其他人应该使用模式B来消费数据o,我可以将完整模式发布到主题,然后使用模式A或模式B来消费数据吗?您发布的内容都不是实际的avro模式,但假设是,那么您可以发布其中任何一个并使用其中任何一个,取决于您是否为使用者中任何不匹配的字段提供了默认值