2017-06-16 8 views
1

AvroとKafkaを初めて使用しています。私のavroの理解から、すべてのavroレコードにはスキーマが添付されています。カフカプロデューサは、データをバイト配列に変換し、それをkafkaコンシューマに送信します。消費者は送信されたデータを返します。私の質問は、スキーマレジストリの概念を持たずに、カフカ消費者からスキーマを取得する方法です。スキーマレジストリを使用せずにkafkaコンシューマからスキーマを戻す方法はありますか?スキーマレジストリを使用せずにkafkaコンシューマからスキーマを取得する

答えて

1

いいえ、avroでシリアル化されたkakfaメッセージにはスキーマIDのみが含まれています。このIDは、スキーマレジストリ上の適切なスキーマを取得するために使用されます。

+0

カフカでは、データはスキーマなしのバイト配列形式でしか供給されませんか?では、スキーマなしでどのように非直列化が行われますか? – Shri

0

Avroレコードは、Avroエンコード時に添付されたschemaIdを持ちます。このスキーマIdは、エンコーディングに使用されたスキーマをフェッチするための識別子です。デコード時にも同じスキーマが使用されるため、 基本的には、レコードからSchemaIdを取得し、そのIDの対応するスキーマをスキーマレジストリから取得できますが、レコード自体から取得することはできません。

関連する問題