このトピックでは、MSE Nacos 設定センターを Spring Cloud アプリケーションに統合し、設定の一元管理と動的リフレッシュを実現する方法について説明します。
背景情報
マイクロサービスアーキテクチャにおいて、ハードコーディングされた値や静的ファイルによる設定管理は、マイクロサービスや環境の数が増えるにつれて困難になります。この方法では、設定の不一致や更新の遅延が発生しがちです。設定センターは、設定データを保存、管理、動的に更新するための一元的な場所を提供することで、これらの問題を解決します。これにより、異なる環境やインスタンス間での設定の分離と同期が保証され、設定更新の柔軟性とセキュリティが向上します。
前提条件
-
Maven をダウンロードし、必要な環境変数を設定していること。
-
既存の Spring Cloud アプリケーションがあること。アプリケーションがない場合は、このトピックで提供されているデモアプリケーション (nacos-service-config.zip) を使用できます。
-
Nacos エンジンを作成していること。
重要アプリケーションが MSE Nacos と同じリージョンにない場合、または Alibaba Cloud サーバー上にない場合は、Nacos エンジンの作成時にパブリックネットワークを選択する必要があります。
アプリケーションからパブリックネットワーク経由で MSE にアクセスするには、ホワイトリストを設定する必要があります。詳細については、「ホワイトリストの設定」をご参照ください。
-
名前空間を作成していること。
概要
MSE Nacos 設定センターを Spring Cloud アプリケーションに統合することで、動的リフレッシュ機能を体験できます。設定パラメータ useLocalCache=true を公開し、MSE Nacos コンソールで useLocalCache=false に更新した後、コマンドラインからアプリケーションの設定 API にリクエストして useLocalCache の値を取得し、変更を確認します。
-
設定の作成と公開: MSE コンソールで初期設定を定義し、公開します。
-
MSE Nacos の統合: Spring Cloud アプリケーションを MSE Nacos 設定センターに接続に必要な依存関係とプロパティを追加します。
-
動的リフレッシュの検証: コンソールで設定を変更し、アプリケーションを再起動せずに変更が適用されることを確認します。
ステップ 1: 設定の作成と公開
-
MSE コンソールにログインし、上部メニューでリージョンを選択します。
-
ターゲットインスタンスの名前をクリックします。
-
左側メニューで、 を選択します。
-
設定リストの上部で、作成した名前空間を選択します。
-
Add Configuration をクリックします。Add Configuration パネルで、以下の情報を入力します。
説明このトピックでは、参考用のサンプル設定のみを提供しています。ビジネス要件に基づいて設定を作成できます。パラメータの詳細については、「設定の作成」をご参照ください。
[Data ID] を
mse-nacos-config-client.propertiesに、 [Group] をDEFAULT_GROUPに設定します。 [Configuration Format] では [Properties] を選択します。 [Configuration Content] フィールドにuseLocalCache=trueと入力し、 [Publish] をクリックします。
-
設定情報を入力したら、Publish をクリックします。新しい設定が Configurations に表示されます。
ステップ 2: MSE Nacos の統合
-
(オプション) Spring Cloud アプリケーションを構築していない場合は、この例を使用してシンプルなアプリケーションを迅速にセットアップできます。
-
Spring Cloud アプリケーションの
pom.xmlファイルに、Nacos 設定センターの依存関係を追加します。説明Spring Cloud Alibaba、Spring Cloud、SpringBootのバージョンは互換性がある必要があります。Spring Cloud Alibaba公式サイトのバージョンリリースノートを確認し、アプリケーションに適合するバージョンを選択してください。最新の2023.xバージョンへのアップグレードを推奨します。<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2021.0.4.0</version> </dependency> -
Spring Cloud アプリケーションの設定ファイルに、Nacos 関連の設定を追加します。
重要アプリケーションで特定の名前空間を使用する場合は、その ID を指定してください。
# Nacos サーバーのパブリックエンドポイント spring.cloud.nacos.config.server-addr=mse-XXX.nacos-ans.mse.aliyuncs.com:8848 # MSE Nacos の名前空間を指定します。デフォルトのパブリック名前空間にアクセスする場合は、この項目を空白のままにするか、設定しないでください。 spring.cloud.nacos.config.namespace=24075300-XXXX-XXXX-XXXX-0c17aa9f744b # 特定の設定ファイルをインポートします。 spring.config.import=nacos:mse-nacos-config-client.properties?group=DEFAULT_GROUP&refreshEnabled=trueインスタンス ページで、MSE Nacos のパブリックエンドポイントを確認できます。形式は
mse.XX.nacos.mse.aliyuncs.comです。 -
変更後、
mvn clean packageコマンドを実行して、アプリケーションを再コンパイルおよびパッケージ化します。
ステップ 3: 動的リフレッシュの検証
以下の検証手順は、このトピックで提供されているサンプル Spring Cloud アプリケーションと設定に基づいています。独自のアプリケーションやカスタム設定を使用している場合は、手順の調整が必要になる場合があります。
-
起動クラスの main 関数を実行して、Spring Cloud アプリケーションを起動します。
-
ターミナルで次のコマンドを実行し、MSE Nacos 設定センターから
useLocalCache設定を取得します。レスポンスはtrueです。# サービスの IP アドレスとポートに置き換えてください。 curl http://<your-service-ip>:18083/getConfig -
コンソールで設定を編集し、内容を
useLocalCache=falseに変更して、再度公開します。 -
再度コマンドを実行します。レスポンスは
falseになります。これにより、アプリケーションが再起動せずに MSE Nacos から最新のuseLocalCacheデータを取得したことを確認できます。
関連ドキュメント
-
自己管理型オープンソース Nacos 設定センターから MSE Nacos 設定センターに移行する場合は、「自己管理型 Nacos 設定センターを MSE Nacos に移行する」をご参照ください。
-
サービス登録と検出について詳しくは、「Spring Cloud アプリケーションで MSE Nacos をレジストリとして統合する」をご参照ください。
-
トラフィックゲートウェイとマイクロサービスゲートウェイの機能を組み合わせる場合は、「MSE クラウドネイティブゲートウェイの作成」をご参照ください。
-
ミドルウェアとビジネスを分離するサービスガバナンスおよびトラフィック保護機能について詳しくは、「Microservices Governance のアクティブ化」をご参照ください。
-
システムの高可用性を向上させる分散コーディネーションソリューションについて詳しくは、「タスクスケジューリング」をご参照ください。