[英]Extract all schemaIDs of all messages in a kafka topic without the need to consume all messages
我想知道是否有辦法(kafka API/工具)從 kafka 和/或模式注冊表中返回主題下消息使用的 schemaId 列表。
我有一個快速解決方案來消耗所有消息以從 kafka 外部提取。 但是,這有點耗費時間和資源。
第一個解決方案:
首先,您可以通過以下方式請求所有模式:
/schemas
響應是一個 object 數組,每個數組都包含一個主題字段,通常代表您的主題名稱。
{
"schema":{"type": "string"},
"subject": "your target topic"},
"version": "version number",
"schema": {}, // schema that you are looking for
"id": "id"
}
第二種解決方案:
/subjects/${your topic name }/versions/
響應是一個版本 ID 數組,例如:
[1,2,3,..]
而且您必須為每個版本獲取所需的架構:
/subjects/${your topic name }/versions/version // 1,2,3 etc
在此處檢查架構注冊表 rest api 文檔
有沒有辦法(kafka API/工具)從kafka中返回主題下消息使用的schemaIds列表
是的。
kafka-avro-console-consumer ... --property print.schema.ids=true
https://github.com/confluentinc/schema-registry/pull/901
無需消費
不; 您至少需要反序列化每條記錄的前 5 個字節。
另一個答案顯示了注冊表中的內容,這不是主題中當前存在的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.