オンプレミス環境で開発されたSpring CloudアプリケーションまたはDubboアプリケーションをServerless App Engine (SAE) にデプロイする場合、SAEの組み込みサービスレジストリまたはMicroservices Engine (MSE) Nacosレジストリを使用してサービスを登録および検出できます。 このトピックでは、MSE Nacosレジストリを構築し、ホスティングのためにアプリケーションをSAEにデプロイする方法について説明します。
前提条件
仮想プライベートクラウド (VPC) が作成され、利用可能になります。 詳細については、「VPC の作成と管理」をご参照ください。
Nacosレジストリのアクセスポート (ポート8848など) は、アプリケーションを実行する前にセキュリティグループに追加されます。 詳細については、「セキュリティグループルールの追加」をご参照ください。
背景情報
スタートアップ企業は、管理のためにSAEにマイクロサービスアプリケーションを展開する必要がありますが、SAEの組み込みサービスレジストリの代わりにMSE Nacosレジストリを使用する必要があります。
アプリケーションをクラスターモードでデプロイする方法については、「クラスターデプロイ手順」をご参照ください。
多数のマイクロサービスアプリケーションがある場合は、推奨レベルごとに降順にリストされている次のタイプのサービスレジストリのいずれかを使用できます。
MSE Nacosレジストリ
自己管理サービスレジストリ
SAEの組み込みサービスレジストリ
自己管理型Nacosエンジンを使用してアプリケーションサービスの検出や構成管理などの機能を実装する場合は、Nacosエンジンを作成および保守するために必要なリソースを購入する必要があります。 このプロセスは、時間がかかり、労働集約的である。 MSEを使用してNacosエンジンを作成する場合は、Nacosエンジンの場所、バージョン、ネットワークタイプ、および仕様にのみ注目する必要があります。 Nacosエンジンの作成とメンテナンスに集中する必要はありません。 MSEを使用すると、ビジネスに集中できます。
MSE Nacosレジストリに接続できるようにするには、V2.2.2以降のNacosクライアントを使用することをお勧めします。 V2.2.2より前のバージョンのNacosクライアントを使用する場合、アプリケーションは常にSAEの組み込みサービスレジストリに接続されますが、MSE Nacosレジストリには接続されません。
ステップ1: Nacosエンジンを購入して構築する
MSEでアプリケーション用のNacosエンジンを作成する方法の詳細については、「Nacosエンジンの作成」をご参照ください。
SAEアプリケーションと同じVPCにあるNacosエンジンを購入することを推奨します。 他の方法を使用して、ネットワーク接続を確保することもできます。
ステップ2: サービスの登録と発見
Nacosエンジンの起動後、サービスの登録と検出機能を使用するには、アプリケーションでサービスレジストリを指定する必要があります。 アプリケーションを実行すると、システムは指定されたサービスレジストリに基づいてサービスを自動的に登録および検出します。
アプリケーションを実行する前に、Nacosレジストリのアクセスポート (ポート8848など) がセキュリティグループに追加されていることを確認してください。
各アプリケーションでレジストリを指定し、サービスアプリケーションとコンシューマーアプリケーションを実行します。
src\main\resourcesでapplication.propertiesファイルを開き、NacosサーバーのIPアドレスを指定します。
MSE Nacosレジストリを使用する場合は、次の操作を実行します。MSEコンソールにログインします。 [インスタンス] ページで、必要なインスタンスをクリックします。 インスタンスの [基本情報] ページで、レジストリの内部エンドポイントを取得します。
プロバイダー
元のコード:
spring.application.name=service-provider server.port=18081 eureka.client.serviceUrl.de faultZone=http:// 127.0.0.1:8761/eureka/
変更されたコード:
spring.application.name=service-provider server.port=18081 spring.cloud.nacos.discovery.server-addr=192.168.XX.XX:8848# 値を購入したNacosレジストリのエンドポイントに置き換えます。 例: mse:**********:8848。
消費者
元のコード:
spring.application.name=service-consumer server.port=18082 eureka.client.serviceUrl.de faultZone=http:// 127.0.0.1:8761/eureka/
変更されたコード:
spring.application.name=service-consumer server.port=18082 spring.cloud.nacos.discovery.server-addr=192.168.XX.XX:8848# 値を購入したNacosレジストリのエンドポイントに置き換えます。 例: mse:**********:8848。
ステップ3: SAEへのアプリケーションのデプロイ
オンプレミスのプロバイダーアプリケーションとコンシューマーアプリケーションをWARパッケージ、JARパッケージ、またはイメージにコンパイルし、アプリケーションをSAEにデプロイしてから、次のいずれかの方法でアプリケーションをNacosレジストリに接続します。 詳細については、以下のトピックをご参照ください。
方法1: サービスの登録と検出の設定
SAEは、Javaマイクロサービスアプリケーション用のNacos Serverの自動アドレス指定機能を提供します。 SAEのサービス登録と検出機能を使用して、サービスレジストリを構成できます。 詳細については、「SAE組み込みNacosレジストリの使用」をご参照ください。
方法2: スタートアップパラメーターの設定
Nacosレジストリに接続するように起動パラメーターを設定する場合は、次の項目に注意してください。
SAEアプリケーションとMSE Nacosレジストリが相互接続されていることを確認します。
- 自己管理サービスレジストリを使用する場合は、イメージまたはJARパッケージを使用してアプリケーションをデプロイし、
-Dnacos.use.endpoint.parsing.ru le=false
および-Dnacos.use.cloud.nameスペース. parsing=false
を設定することを推奨します。重要 SAE以外の組み込みレジストリを使用するには、-jar
の前に必要な起動パラメーターを追加する必要があります。- イメージを使用してアプリケーションをデプロイする場合は、イメージファイルの起動コマンドに
-Dnacos.use.endpoint.parsing.ru le=false
と-Dnacos.use.cloud.name space.parsing=false
を追加します。 Dockerイメージの作成方法については、「Javaアプリケーションをデプロイするイメージの作成」をご参照ください。サンプルコード:
RUN echo 'eval exec jav a -Dnacos.us e.endpoint.parsing.ru le=fals e -Dnacos.use.cloud.nameスペース。parsing=false -jar $CATALINA_OPTS /home/admin/app/hello-edas-0.0.1-SNAPSHOT.jar '> /home/admin/start.sh && chmod + x /home/admin/start.sh
- JARパッケージを使用してアプリケーションをデプロイする場合は、SAEコンソールの [スタートアップコマンドの設定] セクションに移動します。 次に、options Settingsフィールドに
-Dnacos.use.endpoint.parsing.ru le=fals e -Dnacos.use.cloud.name space.parsing=false
と入力します。 次の図は、Open JDK 8ランタイム環境でJavaアプリケーションをデプロイするように構成された起動コマンドを示しています。 詳細については、「スタートアップコマンドの設定」をご参照ください。
- イメージを使用してアプリケーションをデプロイする場合は、イメージファイルの起動コマンドに
- コマンドの無効化を防ぐために,
-D
パラメーターと-XX
パラメーターを同時に使用しないようにしてください。 サンプルコード:- 元のコード:
java -Dalicloud.deployment.mo de=EDAS_MANAGED -XX: UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+ UnlockExperimentalVMOptions -XX:+ UseWisp2ty. transport. poin.t.fac. e -Dnacos.use.cloud.name /paryal-e -Dnacos.us-アクティブ
- 変更されたコード:
java -XX:+ UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+ UnlockExperimentalVMOptions -XX:+ UseWisp2-Dio.net ty.transport.noNative=true -XX:+ UseG1GC -Dspring. e -Dnacos.use.cloud.name /home-parsingle
- 元のコード:
結果の検証
この例では、コンシューマアプリケーションを使用して結果を検証します。 [基本情報] ページの [インスタンスデプロイ情報] タブで、インスタンスリストの [操作] 列の [Webshell] をクリックします。 Webshellウィンドウで、次のコマンドを実行して、アプリケーションがデプロイされているかどうかを確認します。 詳細については、「webshell機能を使用してアプリケーションのヘルスステータスを確認する」をご参照ください。
サービスが登録されているかどうかを確認します。
curl -X GET 'http:// 192.168.XX.XX:8848/nacos/v1/ns/instance/list?serviceName=service-provider'
service-provider
: サービスの名前。192.168.XX.XX:8848
: NacosがインストールされているサーバーのIPアドレスとポート番号。192.168.XX.XX
をMSE Nacosレジストリの内部エンドポイントに置き換えます。 内部エンドポイントの取得方法については、「手順2: サービスの登録と検出」をご参照ください。
次の出力が返された場合は、サービスが登録されます。
マイクロサービスアプリケーションのアクセスURLが正常かどうかを確認します。
ビジネス要件に基づいて、次のいずれかのコマンドを実行します。
127.0.0.1:18082
は、プロバイダーアプリケーションとコンシューマーアプリケーションが実行されているサーバーのIPアドレスとアクセスポートを示します。curl http:// 127.0.0.1:18082/echo-rest/{カスタム変数}
curl http:// 127.0.0.1:18082/echo-feign/{カスタム変数}
次の出力は、コンシューマーアプリケーションがプロバイダーアプリケーションと呼ばれ、マイクロサービスアプリケーションへのアクセスURLが正常であることを示します。
関連ドキュメント
アプリケーションのデプロイに失敗した場合は、次のトピックを参照して、失敗の原因を特定します。