繁体   English   中英

FlinkKafkaConsumer / KafkaSource 与 AWS Glue Schema Registry 或 Confluent Schema Registry

[英]FlinkKafkaConsumer / KafkaSource with AWS Glue Schema Registry or Confluent Schema Registry

我正在尝试编写一个 Flink 流应用程序,它有一个 KafkaSource 来读取一个主题,该主题具有为其数据定义的 AVRO 模式。

我想知道在这种情况下模式的自动缓存在本地是如何工作的,类似于此处的 Confluent 文档。

基本上,用例是消费者不应该事先知道模式。 实例化消费者后,模式注册表 URL 应作为参数,消费者应读取该特定主题的模式。

这可能吗? 任何指针表示赞赏!

实例化消费者后,模式注册表 URL 应作为参数,消费者应读取该特定主题的模式。

它会,并且会被缓存。 这被称为“作者模式”。

消费者不应该事先知道模式

它需要,因为 Avro 需要一个“读者模式”来反序列化由“作者模式”定义的数据。

没有阅读器模式,您只能处理 Avro GenericRecord类型

适用于 Glue 的 AWS SerDe 库使用有线格式,其中包含用于序列化消息的架构(版本)的 uuid。 消费应用程序从消息中读取模式 ID,如果它不在本地缓存中,则从 Glue 模式注册表中加载它。 您可以在这个 javascript serde 库的自述文件底部找到关于有线格式的描述: https://github.com/meinestadt/glue-schema-registry

这应该是可能的。

您可以像这样使用kcat这样的 Kafka CLI 工具进行测试:

kcat -b mybroker -t ledger -s avro -r http://schema-registry-url:8080

如果您使用的是kafka-avro-console-consumer

kafka-avro-console-consumer --topic topicX --bootstrap-server kafka:9092 \ --property schema.registry.url="http://schema-registry:8081"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM