簡體   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