Apicurio Registry デプロイメントの移行
Apicurio Registry バージョン 1.1 から 2.4 への移行
概要
はじめに
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。フィードバックを提供するには、ドキュメントのテキストを強調表示し、コメントを追加してください。
前提条件
- Red Hat カスタマーポータルにログインしている。
- Red Hat カスタマーポータルで、Multi-page HTML 形式でドキュメントを表示している。
手順
フィードバックを送信するには、以下の手順を実施します。
ドキュメントの右上隅にある Feedback ボタンをクリックして、既存のフィードバックを確認します。
注記フィードバック機能は、Multi-page HTML 形式でのみ有効です。
- フィードバックを提供するドキュメントのセクションを強調表示します。
強調表示されたテキスト近くに表示される Add Feedback ポップアップをクリックします。
ページの右側のフィードバックセクションにテキストボックスが表示されます。
テキストボックスにフィードバックを入力し、Submit をクリックします。
ドキュメントに関する問題が作成されます。
- 問題を表示するには、フィードバックビューで問題リンクをクリックします。
第1章 Apicurio Registry 1.1 から 2.x への移行
Apicurio Registry 2.x には、以前の Apicurio Registry 1.1 リリースからの重大な変更を伴う新機能が含まれています。このセクションでは、Apicurio Registry 1.1 とバージョン 2.x の間の主な変更点を説明します。
2.x での重大な変更により、自動アップグレードは行われず、移行作業が必要となります。これには、既存レジストリーのデータを新規レジストリーに移動することも含まれます。また、既存のレジストリークライアントアプリケーションを見直し、新しい要件に合わせて設定を更新する必要があります。
バージョン 2.x に移行する際には、以下の主要な変更点を考慮する必要があります。
1.1. 新規データストレージオプション
Apicurio Registry 1.1 の既存のレジストリーデータストレージオプション (streams
、jpa
、および infinispan
) は、バージョン 2.x (sql
および kafkasql
) の新しいストレージオプションに置き換えられました。これらの新たなストレージオプションは、より堅牢で、パフォーマンスが高く、メンテナンス性に優れた Apicurio Registry デプロイメントを提供します。
選択したストレージオプションで Apicurio Registry 2.x をデプロイする方法の詳細は、Red Hat build of Apicurio Registry の OpenShift へのインストールおよびデプロイ を参照してください。
1.2. 新しい v2 REST API
Apicurio Registry 2.x には、アーティファクトグループをサポートし、長期的な保守性を向上する新しい REST API が含まれています。Apicurio Registry は、Confluent や IBM スキーマレジストリー API など、元のレジストリー v1 REST API と互換性 API をサポートします。また、Apicurio Registry は CNCF Cloud Events 仕様で提供される Schema Registry 仕様を実装するようになりました。
1.3. リファクタリングされた Java クライアントライブラリー
-
Apicurio Registry の Java クライアントクラスは、バージョン 2.x では
apicurio-registry-client
という別の Maven モジュールで提供されています。 - Kafka クライアントシリアライザーおよびデシリアライザー (SerDe) クラスは、バージョン 2.x では、サポートされているデータフォーマットごとに 1 つずつ、3 つの異なる Maven モジュール (Apache Avro、Protobuf、および JSON Schema) で利用できます。これにより、関係のない推移的な依存関係にプルせずに必要なモジュールのみを使用できるようになりました。
関連情報
- v2 REST API の詳細は、Registry REST API のドキュメント を参照してください。
第2章 Apicurio Registry データの移行
Apicurio Registry 2.x にデータを移行するには、既存の 1.1 デプロイメントからすべてのデータをエクスポートし、それを新しい 2.x デプロイメントにインポートする必要があります。Kafka アプリケーションのスキーマレジストリーとして Apicurio Registry を使用している場合は、Apicurio Registry に保存されるスキーマのグローバル識別子が各 Kafka メッセージにあるため、データの移行が重要になります。この識別子はレジストリーデータの移行時に保持される必要があります。
Apicurio Registry 2.x は、レジストリーデプロイメントからすべてのデータを一括インポート/エクスポートするための API を提供します。これにより、既存レジストリーからデータをインポートする際にすべての識別子が保持されることを保証します。エクスポート API は、アーティファクトのすべての情報が含まれるカスタムの .zip
ファイルをダウンロードします。インポート API はこの .zip
を受け入れ、単一のバッチですべてのアーティファクトをレジストリーに読み込みます。
Apicurio Registry 1.1 はインポート/エクスポート API を提供しません。ただし、バージョン 2.x は、Apicurio Registry 1.1 と互換性のあるエクスポートツールを提供し、.zip
をエクスポートして、2.x レジストリーにインポートできます。このツールは、一般的な既存 API を使用してレジストリー内のすべてのコンテンツをエクスポートします。ただし、2.x エクスポート API よりもパフォーマンスが劣るため、1.1 レジストリーからエクスポートする場合にのみ使用してください。
前提条件
- エクスポート元の 1.1 サーバーの Apicurio Registry インスタンスと、インポート先の 2.x サーバーが稼働している。
- Red Hat カスタマーポータルから Apicurio Registry exportV1 ツール をダウンロードする。これは、コマンドラインで実行可能な Java アプリケーションです。
手順
exportV1
ツールを使用して Apicurio Registry 1.1 からすべてのデータをエクスポートします。このコマンドにより、現在のディレクトリーにregistry-export.zip
ファイルが生成されます。java -jar apicurio-registry-utils-exportV1-2.4.4.SP1-redhat-00001.jar http://old-registry.my-company.com/api
インポート API を使用して
.zip
ファイルを Apicurio Registry 2.x にインポートします。curl -X POST "http://new-registry.my-company.com/apis/registry/v2/admin/import" \ -H "Accept: application/json" -H "Content-Type: application/zip" \ --data-binary @registry-export.zip
以下のコマンドを実行して、count フィールドを比較することで、すべてのアーティファクトが新しい 2.x レジストリーにインポートされていることを確認します。
curl "http://old-registry.my-company.com/api/search/artifacts"
curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
関連情報
- REST API のインポート/エクスポートに関する詳細は、Red Hat build of Apicurio Registry ユーザーガイド を参照してください。
- バージョン 1.x から 2.x に移行するためのエクスポートツールの詳細は、1.x バージョン用の Apicurio Registry export utility を参照してください。
第3章 Apicurio Registry クライアントアプリケーションの移行
既存の Apicurio Registry クライアントアプリケーションを確認し、Maven の依存関係と Java クライアントの設定がバージョン 2.x の新しい要件を満たしていることを確認する必要があります。たとえば、これには、Apicurio Registry Java REST クライアントライブラリーまたは Kafka クライアントシリアライザー/デシリアライザー (Serdes) ライブラリーの新しい Maven 依存関係が含まれます。また、新しいレジストリー v2 API パスに合わせて Java アプリケーション設定を更新する必要もあります。
前提条件
- 既存の Apicurio Registry 1.1 Java アプリケーションまたは SerDes のある Kafka クライアントプロデューサーおよびコンシューマー Java アプリケーション
手順
Apicurio Registry Java REST クライアントを使用している場合は、バージョン 2.x で再パッケージされた Apicurio Registry Java クライアントライブラリーの Maven 依存関係を変更する必要があります。
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>2.4.4.SP1-redhat-00001</version> </dependency>
Java クライアントアプリケーションでは、レジストリーの URL 設定を変更し、既存の v1 API パスではなく新しい v2 パスを参照するようにする必要があります。以下に例を示します。
public class ClientExample { private static final RegistryRestClient client; public static void main(String[] args) throws Exception { // Create a registry client String registryUrl = "https://new-registry.my-company.com/apis/registry/v2"; RegistryClient client = RegistryClientFactory.create(registryUrl); } }
Java クライアントの詳細は、Red Hat build of Apicurio Registry ユーザーガイド を参照してください。
Apicurio Registry SerDes ライブラリーを使用している場合は、バージョン 2.x で再パッケージ化された Maven 依存関係を変更する必要があります。Apicurio Registry 1.1 では、SerDes ライブラリーはすべて 1 つの Maven 依存関係のみで提供されていました。
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-utils-serde</artifactId> <version>1.3.2.Final-redhat-00002</version> </dependency>
Apicurio Registry 2.x では、SerDes ライブラリーは、ユースケースに応じて、サポートされる各データ形式 (
avro
、protobuf
、およびjson schema
) ごとに 3 つの Maven 依存関係に分割されました。<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-avro-serde</artifactId> <version>2.4.4.SP1-redhat-00001</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-protobuf-serde</artifactId> <version>2.4.4.SP1-redhat-00001</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-jsonschema-serde</artifactId> <version>2.4.4.SP1-redhat-00001</version> </dependency>
Kafka プロデューサーおよびコンシューマーアプリケーションでは、レジストリーの URL 設定を変更し、既存の v1 API パスではなく新しい v2 パスを参照するようにする必要があります。以下に例を示します。
既存のレジストリー v1 API パス:
props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");
新規のレジストリー v2 API パス:
props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");
リファクタリングされた SerDes ライブラリーには、設定プロパティーの他の重要な変更も含まれています。SerDes の設定に関する詳細は、Red Hat build of Apicurio Registry ユーザーガイド を参照してください。
関連情報
- 詳細な設定例は、Apicurio Registry のサンプルアプリケーション を参照してください。
付録A サブスクリプションの使用
Apicurio Registry は、ソフトウェアサブスクリプションから提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。
アカウントへのアクセス
- access.redhat.com に移動します。
- アカウントがない場合は作成します。
- アカウントにログインします。
サブスクリプションのアクティベート
- access.redhat.com に移動します。
- My Subscriptions に移動します。
- Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。
ZIP および TAR ファイルのダウンロード
ZIP または TAR ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合、この手順は必要ありません。
- ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
- Integration and Automation カテゴリーで Red Hat Integration エントリーを見つけます。
- 目的の Apicurio Registry 製品を選択します。Software Downloads ページが開きます。
- コンポーネントの Download リンクをクリックします。
改訂日時: 2023-11-10