Service Registry デプロイメントの移行


Red Hat Integration 2022.Q1

Service Registry 2.0

概要

本ガイドでは、Service Registry バージョン 2.x の主な変更について説明し、既存の Service Registry バージョン 1.1 デプロイメントをバージョン 2.x に移行する方法を説明します。

前書き

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージをご覧ください。

第1章 Service Registry 1.1 から 2.x への移行

Service Registry 2.x には、前リリースの Service Registry 1.1 からの変更点を含む新機能が含まれています。ここでは、Service Registry 1.1 とバージョン 2.x との間の主な変更点について説明します。

2.x での重大な変更により、自動アップグレードは行われず、移行作業が必要となります。これには、既存レジストリーのデータを新規レジストリーに移動します。また、既存のレジストリークライアントアプリケーションを見直し、新しい要件に合わせて設定を更新する必要があります。

バージョン 2.x に移行する際には、以下の主要な変更点を考慮する必要があります。

1.1. 新規データストレージオプション

Service Registry 1.1 の既存のレジストリーデータストレージオプション (streamsjpa、および infinispan) は、バージョン 2.x (sql および kafkasql) の新しいストレージオプションに置き換えられました。これらの新たなストレージオプションは、より堅牢で、パフォーマンスが高く、メンテナンス性に優れた Service Registry デプロイメントを提供します。

選択したストレージオプションで Service Registry 2.x をデプロイする方法は、『Installing and deploying Service Registry on OpenShift』を参照してください。

1.2. 新しい v2 REST API

Service Registry 2.x には、アーティファクトグループをサポートし、長期的な保守性を向上する新しい REST API が含まれています。Service Registry は、Confluent や IBM スキーマレジストリー API など、元のレジストリー v1 REST API と互換性 API をサポートします。また、Service Registry は CNCF Cloud Events 仕様で提供される Schema Registry 仕様を実装するようになりました。

1.3. リファクタリングされた Java クライアントライブラリー

  • サービスレジストリーの Java クライアントクラスは、バージョン 2.x では apicurio-registry-client という別の Maven モジュールで提供されています。
  • Kakfa クライアントシリアライザーおよびデシリアライザー(SerDe)クラスは、バージョン 2.x ではバージョン 2.x で利用できます。1 つはサポートされる各データ形式に 1 つずつあります。それが Apache Avro、Protobuf、および JSON Schema です。これで、関係のない推移的な依存関係にプルせずに必要なモジュールのみを使用できるようになりました。

第2章 Service Registry データの移行

Service Registry 2.x にデータを移行するには、既存の 1.1 デプロイメントからすべてのデータをエクスポートし、それを新しい 2.x デプロイメントにインポートする必要があります。Kafka アプリケーションのスキーマレジストリーとして Service Registry を使用している場合、Service Registry に保存されるスキーマのグローバル識別子が各 Kafka メッセージにあるため、データの移行が重要になります。この識別子はレジストリーデータの移行時に保持される必要があります。

Service Registry 2.x は、レジストリーデプロイメントからすべてのデータを一括インポート/エクスポートするための API を提供します。これにより、既存レジストリーからデータをインポートする際にすべての識別子が保持されることを保証します。エクスポート API は、アーティファクトのすべての情報が含まれるカスタムの .zip ファイルをダウンロードします。インポート API はこの .zip を受け入れ、単一のバッチですべてのアーティファクトをレジストリーに読み込みます。

Service Registry 1.1 はインポート/エクスポート API を提供しません。ただし、バージョン 2.x は Service Registry 1.1 と互換性のあるエクスポートツールを提供し、.zip をエクスポートして、2.x レジストリーにインポートすることができます。このツールは、一般的な既存 API を使用してレジストリー内のすべてのコンテンツをエクスポートします。ただし、2.x エクスポート API よりもパフォーマンスが劣るため、1.1 レジストリーからエクスポートする場合にのみ使用してください。

前提条件

  • エクスポート元の 1.1 サーバーの Service Registry インスタンスと、インポート先の 2.x サーバーが稼働している。
  • Red Hat カスタマーポータルから Service Registry exportV1 ツール をダウンロードする。これは、コマンドラインで実行可能な Java アプリケーションです。

手順

  1. exportV1 ツールを使用して Service Registry 1.1 からすべてのデータをエクスポートします。このコマンドにより、現在のディレクトリーに registry-export.zip ファイルが生成されます。

    java -jar apicurio-registry-utils-exportV1-2.0.1.Final.jar http://old-registry.my-company.com/api
    Copy to Clipboard
  2. インポート API を使用して .zip ファイルを Service 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
    Copy to Clipboard
  3. 以下のコマンドを実行して、count フィールドを比較することで、すべてのアーティファクトが新しい 2.x レジストリーにインポートされていることを確認します。

    curl "http://old-registry.my-company.com/api/search/artifacts"
    Copy to Clipboard
    curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
    Copy to Clipboard

第3章 Service Registry クライアントアプリケーションの移行

既存のService Registry クライアントアプリケーションを確認し、Maven の依存関係と Java クライアントの設定がバージョン 2.x の新しい要件を満たしていることを確認する必要があります。たとえば、これには、Service Registry Java REST クライアントライブラリーまたは Kafka クライアントシリアライザー/デシリアライザー (Serdes) ライブラリーの新しい Maven 依存関係が含まれます。また、新しいレジストリー v2 API パスに合わせて Java アプリケーション設定を更新する必要もあります。

前提条件

  • 既存の Service Registry 1.1 Java アプリケーションまたは SerDes のある Kafka クライアントプロデューサーおよびコンシューマー Java アプリケーション

手順

  1. Service Registry Java REST クライアントを使用している場合は、バージョン 2.x で再パッケージされた Service Registry Java クライアントライブラリーの Maven 依存関係を変更する必要があります。

    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-client</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    Copy to Clipboard
  2. 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);
        }
    }
    Copy to Clipboard

    Java クライアントの詳細は、『Service Registry User Guide』を参照してください。

  3. Service Registry SerDes ライブラリーを使用している場合は、バージョン 2.x で再パッケージ化された Maven 依存関係を変更する必要があります。Service Registry 1.1 では、SerDes ライブラリーはすべて 1 つの Maven 依存関係のみで提供されていました。

    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-utils-serde</artifactId>
        <version>1.3.2.Final</version>
    </dependency>
    Copy to Clipboard

    Service Registry 2.x では、SerDes ライブラリーは、ユースケースに応じて、サポートされる各データ形式 (avroprotobuf、および json schema) ごとに 3 つの Maven 依存関係に分割されました。

    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-serdes-avro-serde</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-serdes-protobuf-serde</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-serdes-jsonschema-serde</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    Copy to Clipboard
  4. Kafka プロデューサーおよびコンシューマーアプリケーションでは、レジストリーのURL 設定を変更し、既存の v1 API パスではなく新しい v2 パスを示すようにする必要があります。以下に例を示します。

    既存のレジストリー v1 API パス:

    props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");
    Copy to Clipboard

    新規のレジストリー v2 API パス:

    props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");
    Copy to Clipboard

    リファクタリングされた SerDes ライブラリーには、設定プロパティーの他の重要な変更も含まれています。SerDes の設定に関する詳細は、『Service Registry User Guide』を参照してください。

付録A サブスクリプションの使用

Service Registry は、ソフトウェアサブスクリプションから提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。

アカウントへのアクセス

  1. access.redhat.com に移動します。
  2. アカウントがない場合は、作成します。
  3. アカウントにログインします。

サブスクリプションのアクティベート

  1. access.redhat.com に移動します。
  2. サブスクリプション に移動します。
  3. Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。

ZIP および TAR ファイルのダウンロード

ZIP または TAR ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合は、この手順は必要ありません。

  1. ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
  2. Integration and Automation カテゴリーで Red Hat Integration エントリーを見つけます。
  3. 必要な Service Registry 製品を選択します。Software Downloads ページが開きます。
  4. コンポーネントの Download リンクをクリックします。

パッケージ用のシステムの登録

Red Hat Enterprise Linux に RPM パッケージをインストールするには、システムを登録する必要があります。ZIP または TAR ファイルを使用している場合、この手順は必要ありません。

  1. access.redhat.com に移動します。
  2. Registration Assistant に移動します。
  3. ご使用の OS バージョンを選択し、次のページに進みます。
  4. システムターミナルで listed コマンドを使用して、登録を完了します。

詳細は 「How to Register and Subscribe a System to the Red Hat Customer Portal」を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat