このトピックでは、ダウンタイムを最小限に抑えながら、マイクロサービスアプリケーションを自己管理型 Eureka レジストリから Microservices Engine (MSE) Nacos レジストリへ移行する方法について説明します。移行には、双方向のサービス同期を実現する MSE Sync ツールを使用し、移行プロセス中もアプリケーションの可用性を維持します。
仕組み
MSE Sync は、自己管理型 Eureka インスタンスと MSE Nacos インスタンス間のサービス登録をリアルタイムで同期することで、両インスタンスをブリッジ接続します。移行中は、両レジストリが常に同期された状態を保ちます:
Eureka に接続したままのアプリケーションでも、すでに Nacos に移行済みのサービスを検出できます。
Nacos に既に接続済みのアプリケーションでも、Eureka に登録されたままのサービスを検出できます。
すべてのアプリケーションが Nacos へ切り替わった後、Eureka インスタンスを廃止し、MSE Sync の実行を停止します。
前提条件
開始前に、以下の条件を満たしていることを確認してください。
自己管理型 Eureka インスタンス、MSE Sync ツール、および MSE Nacos インスタンス間のネットワーク接続性
制限事項
MSE Sync ツールが停止すると、同期処理も停止します。高可用性を確保するため、MSE Sync を少なくとも 2 つのノードにデプロイしてください。
移行を開始したら、できる限り速やかに完了させてください。同期ブリッジは一時的な状態であり、長期運用向けのアーキテクチャではありません。
ステップ 1:移行タスクの作成
ソース Eureka クラスターの追加
MSE Sync ツールの左側ナビゲーションウィンドウで、クラスター設定 をクリックします。
クラスターの追加 をクリックします。
クラスターの追加 ダイアログボックスで、以下のパラメーターを設定し、OK をクリックします。
パラメーター 説明 クラスター名 ソースインスタンスの名前を入力します。 クラスタータイプ EUREKA を選択します。 クラスター IP アドレス一覧 ソース Eureka インスタンスの IP アドレスとポートを 1 行に 1 つずつ入力します。デフォルトポートは 8761 です。ソースインスタンスで Server Load Balancer (SLB) インスタンスを使用している場合は、代わりに SLB の IP アドレスとポートを入力します。
宛先 Nacos クラスターの追加
クラスター設定 ページで、再度 クラスターの追加 をクリックします。
クラスターの追加 ダイアログボックスで、以下のパラメーターを設定し、OK をクリックします。
パラメーター 説明 クラスター名 宛先インスタンスの名前を入力します。 クラスタータイプ Nacos を選択します。 名前空間 デフォルトの名前空間は public です。 ユーザー名 / パスワード Nacos 認証が有効になっている場合のみ必要です。 クラスター IP アドレス一覧 MSE Nacos インスタンスのエンドポイントとポートを入力します。デフォルトポートは 8848 です。例: mse-xxxxxxx-p.nacos-ans.mse.aliyuncs.com:8848。
同期タスクの作成
左側ナビゲーションウィンドウで、サービス同期 をクリックします。
新規同期 をクリックします。
新規同期ダイアログボックスで、同期タスクを設定します:
同期モード: 双方向 を選択します。このモードでは、サービス登録が双方向に同期され、いずれか一方での変更が他方に反映されます。
同期タイプ: サービス情報 を選択します。MSE Sync は、ソース Eureka インスタンスに登録されているすべてのアプリケーションを自動的に一覧表示します。要件に応じて、移行対象のアプリケーションを選択します。
OK をクリックします。
同期済みのアプリケーション名が、サービス同期 ページに表示されます。
ステップ 2:同期結果の検証
MSE コンソール にログインし、上部のナビゲーションバーからリージョンを選択します。
左側ナビゲーションウィンドウで、マイクロサービスレジストリ > インスタンス を選択します。
インスタンス ページで、MSE Nacos インスタンスの名前をクリックします。
左側ナビゲーションウィンドウで、サービス管理 > サービス を選択します。
ステップ 1 で選択したアプリケーションが、予想インスタンス数とともにサービス一覧に表示されることを確認します。
ステップ 3:クライアントの移行
自己管理型 Eureka インスタンスのエンドポイントを、MSE Nacos インスタンスのエンドポイントに置き換えます。
クライアントを再起動して、MSE Nacos インスタンスに接続します。
重要業務継続性を確保するため、アプリケーションをバッチ単位で再起動してください。各バッチの再起動後、MSE Nacos コンソール上で再起動済みのアプリケーションが健全なインスタンスとして表示されることを確認してから、次のバッチへ進んでください。
すべてのアプリケーションの再起動が完了したら、MSE コンソールの サービス ページを確認し、すべてのアプリケーションが MSE Nacos インスタンスに正しく登録されていることを確認します。
ステップ 4:旧レジストリの廃止
すべてのアプリケーションが MSE Nacos に接続された後:
自己管理型 Eureka インスタンスをシャットダウンします。
MSE Sync ツールの実行を停止します。