すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:Dubbo アプリケーションを SAE にスムーズに移行する

最終更新日:Apr 09, 2025

Dubbo アプリケーションがすでに Alibaba Cloud にデプロイされている場合は、Serverless App Engine (SAE) に移行できます。このトピックでは、アプリケーションを SAE にスムーズに移行する方法について説明します。

ステップ 1:最初のアプリケーションを移行する

このトピックでは、デモアプリケーションを SAE にスムーズに移行する方法の例を示します。デモアプリケーションのダウンロード URL については、「デモ」をご参照ください。

  1. アプリケーション移行の優先順位を決定します。

    移行要件の高いアプリケーションを選択します。下位層の Provider から始めることをお勧めします。呼び出しチェーンが複雑すぎて分析できない場合は、任意のアプリケーションを移行対象として選択できます。

  2. アプリケーションに依存関係を追加し、構成を変更します。

    説明

    このトピックで説明する移行ソリューションは、二重登録および二重サブスクリプションソリューションです。

    1. pom.xml edas-dubbo-migration-bom 依存関係をファイルに追加します。

      <dependency>
          <groupId>com.alibaba.edas</groupId>
          <artifactId>edas-dubbo-migration-bom</artifactId>
          <version>2.6.5.1</version>
          <type>pom</type>
      </dependency>                            
    2. application.propertiesSAE レジストリの IP アドレスを に追加します。

      dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=zookeeper://192.168.XX.XX:2181&config-address=127.0.XX.XX:8848      
      重要

      Spring Boot アプリケーション以外を使用している場合は、dubbo.properties ファイルまたは対応する Spring 構成ファイルで設定を構成する必要があります。

      パラメーター

      説明

      edas-migration://192.168.XX.XX:9999

      複数のレジストリのヘッダーは変更されないままにすることができます。起動時に、Dubbo は IP アドレスとポートを確認します。ログレベルが WARN 以下の場合、WARN ログが表示されることがあります。これらのログは無視してかまいません。

      service-registry

      サービスレジストリのアドレス。サービスでは複数のレジストリアドレスがサポートされています。複数のレジストリアドレスを挿入できます。各レジストリは標準の Dubbo レジストリ形式を使用します。複数のレジストリはコンマ (,) で区切ります。この例では、192.168.XX.XX は ZooKeeper アドレスです。実際の ZooKeeper アドレスとポートを使用してください。

      reference-registry

      サービスがサブスクライブするレジストリのアドレス。複数の登録、または移行前のレジストリへの登録がサポートされています。

      config-address

      動的プッシュのアドレス。

    3. その他の変更。

      Spring Boot 以外の Spring アプリケーションの場合は、com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRest をスキャンパスに追加する必要があります。

  3. ローカル検証。

    このセクションでは、動的構成を例として使用します。

    1. 検証の準備。検証の前に、次の操作が完了していることを確認してください。

    2. サービスが正常に登録されているかどうかを確認します。

      • 軽量構成センターにログオンして、サービスプロバイダーリストでサービスを表示します。

      • ZooKeeper にログオンして、サービスの登録と消費に関する情報を表示します。

    3. オプション: Nacos にログオンして、サービス登録情報を構成します。

      説明

      動的構成が必要ない場合は、この手順をスキップできます。

      パラメーター

      説明

      DataId

      dubbo.registry.config に設定します。

      グループ

      対応する Dubbo アプリケーションの名前に設定します(例:dubbo-migration-demo-server)。サービス登録情報はアプリケーションレベルで構成されるため、アプリケーション名は一意である必要があります。

      構成コンテンツ

      • アプリケーションレベル

        dubbo.reference.registry=edas://127.0.XX.XX:8080   # サービスが登録されているレジストリのアドレス。
        dubbo.service.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181   # サービスがサブスクライブするレジストリのアドレス。
      • インスタンス IP アドレスレベル

        192.168.XX.XX.dubbo.reference.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181
        192.168.XX.XX.dubbo.service.registry=edas://127.0.XX.XX:8080

      クラスター検証の場合は、最初にインスタンス IP アドレスレベルで検証してから、アプリケーション全体を検証することをお勧めします。

    4. 移行後にアプリケーション呼び出しが正常かどうかを確認し、レジストリ内の登録とサブスクリプションの関係を表示します。

      • Spring Boot 1.x: http://ip:port/dubboRegistry

      • Spring Boot 2.x: http://ip:port/actuator/dubboRegistry

      Dubbo应用迁移1

  4. アプリケーションを SAE にデプロイします。

    実際の要件に基づいて、アプリケーションを SAE にデプロイします。詳細については、「アプリケーションのデプロイ」をご参照ください。

  5. 結果の検証。

    1. ビジネスが正常に実行されているかどうかを確認します。

    2. サービスサブスクリプションのモニタリングを表示します。

      アプリケーションで Spring Boot Actuator が有効になっている場合は、Actuator にアクセスして、アプリケーションがサブスクライブしている各サービスの RibbonServerList 情報を表示できます。次の URL を使用して Actuator にアクセスできます。

      • Spring Boot 1.x: http://ip:port/dubboRegistry

      • Spring Boot 2.x: http://ip:port/actuator/dubboRegistry

      Dubbo应用迁移2

      次の表にパラメーターを示します。

      • dubbo.orig.**:アプリケーションで構成されているレジストリ情報。

      • dubbo.orig.**:有効なレジストリ情報。

ステップ 2:他のアプリケーションを移行する

すべてのアプリケーションを 1 つずつ SAE に移行します。詳細については、「ステップ 1:最初のアプリケーションを移行する」をご参照ください。

ステップ 3:移行構成を削除する

移行が完了したら、元のレジストリ構成と移行固有の依存関係 edas-dubbo-migration-bom を削除します。

対応するレジストリアドレスを変更し(ZooKeeper 構成を削除する)、Consumer と Provider が SAE からのみサブスクライブするようにします。次の方法を使用できます。

  • 方法 1:動的構成を使用する。詳細については、「ローカル検証」をご参照ください。

  • 方法 2:構成を手動で変更する。

    すべてのアプリケーションが変更されたら、アプリケーションのレジストリアドレスを変更し、サブスクリプションアドレスを SAE ConfigServer に変更します。

    dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=edas://127.0.XX.XX:8080&config-address=127.0.XX.XX:8848

    reference-registry の値を zookeeper://192.168.XX.XX:2181 から edas://127.0.XX.XX:8080 に変更します。変更が完了したら、アプリケーションをデプロイできます。

    説明

    アプリケーションの移行が完了した後、ZooKeeper を使用しなくなった場合は、レジストリ構成から zookeeper://192.168.XX.XX:2181 を削除する必要があります。

    レガシー ZooKeeper を長期間使用してもビジネスの安定性には影響しませんが、Dubbo によるレジストリの使用が複雑になり、エラー率が高くなります。移行後はレガシー ZooKeeper を速やかにクリーンアップし、ビジネス量の少ない期間にアプリケーションをバッチで再起動することをお勧めします。次のサンプルコードは、変更されたレジストリアドレスを示しています。

    dubbo.registry.address = edas://127.0.XX.XX:8080