次の方法で共有


クライアント側のスキーマの適用

クライアント側のスキーマの適用により、ブローカー/サーバー側ではなく、クライアント側のスキーマ レジストリで定義されているスキーマに対してデータが検証されます。 プロデューサー アプリケーションは、イベント ハブにデータを送信する前に、スキーマを使用してデータを検証およびシリアル化できます。 同様に、コンシューマー アプリケーションは、イベント ハブからイベントを受信した後、データを逆シリアル化して検証できます。

クライアント側のスキーマの適用により、クライアント側でデータが検証されることが確実になります。 プロデューサー アプリケーションがデータを送信し、コンシューマー アプリケーションがデータを受け取ります。 そのデータは、ブローカー/サーバー側ではなく、クライアント側のスキーマ レジストリで定義されているスキーマに対して検証されます。

この図は、このフローを示したものです。

スキーマ レジストリの情報フローを示す図。

Note

この図は、イベント プロデューサーとコンシューマーが Kafka プロトコルと Avro スキーマでスキーマ レジストリを使用する場合の情報フローを示しています。 他のプロトコルとスキーマ形式も同様に動作します。

Producer

  1. Kafka プロデューサー アプリケーションでは、指定されたスキーマを使ってイベント データをシリアル化するために KafkaAvroSerializer を使います。 プロデューサー アプリケーションでは、スキーマの検証に必要なスキーマ レジストリ エンドポイントとその他のオプション パラメーターの詳細を指定します。

  2. シリアライザーにより、イベント データをシリアル化するためのスキーマがスキーマ レジストリ内で検索されます。 スキーマが見つかった場合は、対応するスキーマ ID が返されます。 スキーマが存在しない場合はスキーマ レジストリにスキーマを自動的に登録するように、プロデューサー アプリケーションを構成できます。

  3. シリアライザーによって、イベント ハブに発行されるシリアル化されたデータの前にそのスキーマ ID が付加されます。

コンシューマー

  1. Kafka コンシューマー アプリケーションでは、KafkaAvroDeserializer を使って、イベント ハブから受け取ったデータを逆シリアル化します。

  2. 逆シリアライザーでは、スキーマ ID (プロデューサーによって前に付加されたもの) を使って、スキーマ レジストリからスキーマが取得されます。

  3. 逆シリアライザーにより、スキーマを使って、イベント ハブから受け取ったイベント データが逆シリアル化されます。

  4. スキーマ レジストリ クライアントは、キャッシュを使って、後で冗長なスキーマ レジストリ参照が行われるのを防ぎます。