2017-06-16 43 views
1

我是Avro和Kafka的新手。根據我對avro的理解,所有avro記錄都會附加一個模式。卡夫卡生產者將數據轉換爲字節數組並將其發送給卡夫卡消費者。消費者返回發送的數據。我的問題是如何在不引入模式註冊的概念的情況下從kafka消費者檢索模式。有沒有一種方法可以在不使用模式註冊表的情況下從kafka消費者獲取模式?從卡夫卡消費者檢索架構而不使用架構註冊表

回答

1

不,您在avro中序列化的kakfa消息只包含模式標識。此標識用於檢索模式註冊表上的良好模式。

+0

是否在kafka中,只有數據以沒有模式的字節數組格式發送?那麼如果沒有模式,反序列化是如何發生的呢? – Shri

0

在Avro編碼時,Avro Records將附有schemaId。該模式Id是用於獲取已用於編碼的模式的標識符。因爲在解碼時也使用相同的模式。 因此,基本上可以從記錄中獲取SchemaId,然後可以從模式註冊表中獲取該ID的相應模式,但不能從記錄本身獲取該模式。