Sah*_*has 2 avro apache-kafka confluent-schema-registry confluent-platform
Kafka schema-registry 提供了一种使用通用数据契约对来自 Kafka 的数据进行序列化和反序列化的好方法。然而,数据契约(.avsc 文件)是生产者和消费者之间的粘合剂。
一旦制作人制作了 .avsc 文件,就可以将其签入制作人一侧的版本控制。根据语言,它也会自动生成类。
然而,
您正在谈论使用 Avro 模式的两种不同方式:
.avsc文件并将其提供给下游消费者。在第一种方法中,您的生产者将有一个.avsc文件用于序列化消息并将它们发送到 Kafka,但如果您使用模式注册表,则无需担心消费者需要实际的 Avro 定义,因为整个 Avro 模式可使用模式 id 从模式注册表中获得。您没有实际生成的类,没错,但您仍然可以“遍历”整个消息,并从中提取数据。
在第二种方法中,不使用模式注册表,生产者使用一个.avsc文件将发送到 Kafka 的数据序列化为字节数组,然后该文件提供给消费者/下游应用程序,通常通过源代码控制。当然,这意味着无论何时进行架构更改,您的生产者和消费者都必须保持同步,否则您的消费者将无法读取生产者添加或修改的字段。
因此,如果您使用模式注册表,Kafka 消费者(如果配置正确)将自动拉取每条消息所需的模式,然后您可以提取所需的数据。另外,您还可以使用以下内容获取任何主题的最新架构:
curl -X GET "http://schema-registry.company.com:8081/subjects/your_topic-value/versions/latest/schema"
Run Code Online (Sandbox Code Playgroud)
但是,如果您没有使用架构注册表,那么获取完整架构的唯一方法是访问.avsc用于序列化消息的文件,通常通过源代码控制,如上所述。然后,您还可以共享自动生成的类(如果可用),将您的消息直接反序列化为类。
有关如何与 Schema Registry 交互的更多信息,请访问文档链接:https : //docs.confluent.io/current/schema-registry/schema_registry_tutorial.html#using-curl-to-interact-with-schema-登记处
以及一些关于一般架构兼容性以及它如何在架构注册表中处理/配置的阅读 - https://docs.confluent.io/current/schema-registry/avro.html
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |