第10章 Service Registry を使用したスキーマの管理
本章では、AMQ Streams をデプロイし Red Hat Service Registry と統合する方法について解説します。Service Registry は、データストリーミングのサービススキーマの集中型ストアとして使用できます。
Service Registry は、多くの標準的なアーティファクトタイプのストレージおよび管理をサポートします。たとえば、Kafka の場合、AVRO
または JSON
に基づくスキーマ定義を使用できます。
Service Registry は、REST API および Java REST クライアントを提供し、サーバー側のエンドポイントを介してクライアントアプリケーションからスキーマを登録およびクエリーします。Service Registry Web コンソールを使用して、スキーマを直接閲覧および更新することもできます。プロデューサークライアントおよびコンシューマークライアントが Service Registry を使用するように設定できます。
Maven プラグインも提供されるので、ビルドの一部としてスキーマをアップロードおよびダウンロードできます。スキーマの更新がクライアントアプリケーションと互換性があることを確認する場合、Maven プラグインはテストおよび検証に役立ちます。
その他のリソース
- Service Registry のドキュメント
- Service Registry は、GitHub の Apicurio/Apicurio-registry で利用可能な Apicurio Registry オープンソースコミュニティープロジェクトで構築されます。
- また Service Registry のデモは、GitHub の Apicurio/Apicurio-registry-demo から利用できます。
- Apache Avro
10.1. Service Registry を使用する理由
Service Registry を使用すると、クライアントアプリケーションの設定からスキーマ管理のプロセスが分離されます。クライアントコードに URL を指定して、アプリケーションがレジストリーからスキーマを使用できるようにします。
たとえば、メッセージをシリアライズおよびデシリアライズするスキーマをレジストリーに保存できます。アプリケーションは保存されたスキーマを参照し、それらを使用して送受信するメッセージとスキーマとの互換性を維持します。
Kafka クライアントアプリケーションは実行時にスキーマを Service Registry からプッシュまたはプルできます。
スキーマは進化するので、Service Registry でルールを定義できます。たとえば、スキーマへの変更が有効で、アプリケーションによって使用される以前のバージョンとの互換性を維持するようにします。Service Registry は、変更済みのスキーマと前バージョンのスキーマを比較することで、互換性をチェックします。
Service Registry は Avro スキーマのスキーマレジストリーを完全にサポートします。Avro スキーマは、Service Registry で提供される Kafka クライアントのシリアライザー/デシリアライザー (SerDe) サービスを通じてクライアントアプリケーションによって使用されます。