0
因此,我們計劃使用Avro通過基於合流kafka的生態系統進行通信。我目前對Avro的理解是,每條消息都有其架構。如果是這種情況,我們需要模式註冊才能解決版本更新?Avro消息與模式
我問,因爲攜帶每個消息的架構可以防止需要類似模式註冊表來將消息ID映射到架構。或者我在這裏錯過了什麼?
因此,我們計劃使用Avro通過基於合流kafka的生態系統進行通信。我目前對Avro的理解是,每條消息都有其架構。如果是這種情況,我們需要模式註冊才能解決版本更新?Avro消息與模式
我問,因爲攜帶每個消息的架構可以防止需要類似模式註冊表來將消息ID映射到架構。或者我在這裏錯過了什麼?
運行Confluent模式註冊表時,與Confluent Avro Serdes庫一起發佈的Kafka消息不包含avro模式。它們只包含消費者反序列化器用於從Confluent模式註冊表中獲取模式的數字模式標識。這些模式由串行器和解串器緩存作爲進一步的性能優化。
謝謝---所以基於非模式註冊表的消息仍然會在開始時攜帶模式,對嗎?它確實讓你想知道(我知道的另一個問題)接收器如何爲數據等未知的TLV編寫代碼。 – intiha
Avro序列化的消息在消息的開頭會有一個額外的字節,它是模式註冊表中的模式ID,然後消息的其餘部分是普通的二進制avro數據。在網絡上非常緊湊,比在每條消息中放置整個avro模式要小得多的消息大小。 –