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


Red Hat build of Apicurio Registry 2.4

Apicurio Registry バージョン 1.1 から 2.4 への移行

Red Hat build of Apicurio Registry Documentation Team

概要

このガイドでは、Apicurio Registry バージョン 2.x の主な変更を説明し、既存の 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 形式でドキュメントを表示している。

手順

フィードバックを送信するには、以下の手順を実施します。

  1. ドキュメントの右上隅にある Feedback ボタンをクリックして、既存のフィードバックを確認します。

    注記

    フィードバック機能は、Multi-page HTML 形式でのみ有効です。

  2. フィードバックを提供するドキュメントのセクションを強調表示します。
  3. 強調表示されたテキスト近くに表示される Add Feedback ポップアップをクリックします。

    ページの右側のフィードバックセクションにテキストボックスが表示されます。

  4. テキストボックスにフィードバックを入力し、Submit をクリックします。

    ドキュメントに関する問題が作成されます。

  5. 問題を表示するには、フィードバックビューで問題リンクをクリックします。

第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 の既存のレジストリーデータストレージオプション (streamsjpa、および 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) で利用できます。これにより、関係のない推移的な依存関係にプルせずに必要なモジュールのみを使用できるようになりました。

関連情報

第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 アプリケーションです。

手順

  1. 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
  2. インポート 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
  3. 以下のコマンドを実行して、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"

関連情報

第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 アプリケーション

手順

  1. 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>
  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);
        }
    }

    Java クライアントの詳細は、Red Hat build of Apicurio Registry ユーザーガイド を参照してください。

  3. 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 ライブラリーは、ユースケースに応じて、サポートされる各データ形式 (avroprotobuf、および 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>
  4. 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 ユーザーガイド を参照してください。

関連情報

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

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

アカウントへのアクセス

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

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

  1. access.redhat.com に移動します。
  2. My Subscriptions に移動します。
  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. 目的の Apicurio Registry 製品を選択します。Software Downloads ページが開きます。
  4. コンポーネントの Download リンクをクリックします。

改訂日時: 2023-11-10

法律上の通知

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.