Apicurio Registry デプロイメントの移行
Apicurio Registry バージョン 1.1 から 2.5 への移行
概要
はじめに
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック
Red Hat ドキュメントに関するご意見やご感想をお寄せください。
改善を提案するには、Jira 課題を作成し、変更案についてご説明ください。ご要望に迅速に対応できるよう、できるだけ詳細にご記入ください。
前提条件
-
Red Hat カスタマーポータルのアカウントがある。このアカウントを使用すると、Red Hat Jira Software インスタンスにログインできます。
アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- Create issue にアクセスします。
- Summary テキストボックスに、問題の簡単な説明を入力します。
Description テキストボックスに、次の情報を入力します。
- 問題が見つかったページの URL
-
問題の詳細情報
他のフィールドの情報はデフォルト値のままにすることができます。
- Create をクリックして、Jira 課題をドキュメントチームに送信します。
フィードバックの提供にご協力いただきありがとうございました。
第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 をデプロイする方法の詳細は、OpenShift への Red Hat build of Apicurio Registry のインストールおよびデプロイ を参照してください。
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.5.10.Final-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.5.10.Final-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.5.10.Final-redhat-00001</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-protobuf-serde</artifactId> <version>2.5.10.Final-redhat-00001</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-jsonschema-serde</artifactId> <version>2.5.10.Final-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 リンクをクリックします。
改訂日時: 2024-05-15