【问题标题】:How Kafka Streams API get correct schema from Schema Registry?Kafka Streams API 如何从 Schema Registry 获取正确的模式?
【发布时间】:2020-03-20 04:29:11
【问题描述】:

我试图了解 Kafka Streams API 如何与 Schema Registry 一起工作。

我知道您在设置应用程序时必须指定架构注册表 URL,但我无法理解我的应用程序如何在不指定主题名称或 ID 的情况下从注册表中检索正确的架构。

它使用主题名称检索架构?

【问题讨论】:

  • 如果以下答案之一解决了您的问题,请将其标记为已接受。

标签: apache-kafka-streams confluent-platform confluent-schema-registry


【解决方案1】:

我试图了解 Kafka Streams API 如何与 Schema Registry 一起工作。

Kafka Streams 通过在 Kafka Streams 应用程序中使用 Schema-Registry-aware Serde(序列化器/反序列化器)与 Confluent Schema Registry 集成。如今,Schema Registry 仅支持 Avro 作为数据格式(计划添加 Protobuf 和 JSON 等其他格式),因此有一个与 Schema Registry 集成的 Avro Serde。请参阅 Confluent 的Kafka Streams documentation on 'Avro Serde'

我知道您在设置应用程序时必须指定架构注册表 URL 这就是为什么,见上文,您必须在配置 Kafka Streams 应用程序时指定 SR URL,因为此设置将从 Kafka Streams 传递到 Avro Serde。

如果不指定主题名称或 ID,我无法理解我的应用程序如何从注册表中检索正确的架构。

Schema Registry 中的主题名称是主题名称和后缀的组合,可以是-key-value,具体取决于 Serde 是分别用于序列化/反序列化 Kafka 消息键还是 Kafka 消息值(见Schema Registry documentation on 'Subjects')。换句话说,有一个命名约定映射 Kafka topic(使用 Avro serde 从您的 Kafka Streams 应用程序读取或写入)和 Schema 中的 subjects注册表。

此外,一个模式可能有一个模式 ID,用于在同一主题(以及主题)下注册多个模式的情况下消除模式解析的歧义。见Schema Registry documentation on 'Schema IDs'

【讨论】:

    猜你喜欢
    • 2021-01-11
    • 2019-10-24
    • 2020-04-17
    • 2022-12-24
    • 2021-03-08
    • 2020-08-11
    • 2021-07-26
    • 2019-07-21
    • 2020-07-30
    相关资源
    最近更新 更多