【问题标题】:Using various Avro's schemas to consume one topic and one schema使用各种 Avro 的模式来消费一个主题和一个模式
【发布时间】:2020-04-12 14:17:33
【问题描述】:

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

发布:

完整架构:

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

消费:

架构 A:

{
    Name: "", 
    Phone:""
}

架构 B:

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

【问题讨论】:

    标签: apache-kafka apache-nifi avro confluent-schema-registry


    【解决方案1】:

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

    【讨论】:

    • 因为我有更多的应用来消费数据,每个应用都需要权限控制是否可以实现?
    • 我不明白这个问题
    • 表示有人使用Schema A消费数据,其他人使用Schema B消费数据
    • 那么,我可以将 Full Schema 发布到主题,然后使用 Schema A 或 Schema B 来消费数据吗?
    • 您发布的内容都不是实际的 avro 架构,但假设它们是,那么您可以发布其中任何一个并使用其中任何一个,具体取决于您是否提供了默认值消费者中任何不匹配的字段
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-06-14
      • 2018-04-17
      • 2023-03-14
      • 2022-11-08
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      相关资源
      最近更新 更多