技術共有

Grain Mall 研究ノート-23-分散コンポーネント-SpringCloud Alibaba-Nacos 構成センター-簡単な例

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

私は以前、Nacos を登録センターとして使用する方法を学習しました。このセクションでは、Nacos の別のコア機能を学習します。配置中心

1. Nacos 構成センターの概要

Nacos は、動的なサービス検出と構成管理のための使いやすいプラットフォームです。 Nacos は構成センターとして、次のコア機能と利点を提供します。

  1. 動的構成管理: Nacos を使用すると、ユーザーはサービスを再起動せずに構成情報を動的に変更およびプッシュできるため、構成のリアルタイム更新が実現します。

  2. 集中ストレージを構成する: Nacos は一元化された構成ストレージを提供するため、構成情報の管理と保守が容易になり、構成が異なる環境やシステムに散在するという問題を回避できます。

  3. バージョン管理を構成する: Nacos は、構成のバージョン管理をサポートしています。これにより、構成の変更履歴を追跡し、ロールバック操作を容易にすることができます。

  4. 共有の設定: Nacos を使用すると、サービス間で構成を共有できるため、構成の再利用性が向上し、冗長性が削減されます。

  5. 分離を構成する: Nacos は、名前空間の概念を通じて、さまざまな環境 (開発、テスト、運用など) の構成の分離をサポートし、環境間の構成が相互に干渉しないようにします。

  6. リスニングとプッシュを構成する: Nacos は構成監視機能を提供し、構成が変更されると、クライアントに更新を積極的にプッシュして、構成のホット アップデートを実現します。

  7. 安全性: Nacos は、構成アクセス制御と権限管理をサポートし、許可されたユーザーのみが構成にアクセスまたは変更できるようにします。

  8. 複数の環境のサポート: Nacos はさまざまな導入環境をサポートし、さまざまな規模やニーズの構成管理に対応できます。

  9. Spring Cloudとの統合: Nacos は Spring Cloud と緊密に統合されており、spring-cloud-starter-alibaba-nacos-config およびその他のコンポーネントを提供し、Spring Cloud アプリケーションで Nacos 構成センターを使用するプロセスを簡素化します。

  10. 使いやすさ: Nacos はフレンドリーなユーザー インターフェイスを提供し、構成の表示、変更、管理を直観的かつ簡単にします。

構成センターとして、Nacos は、動的な構成管理を必要とするマイクロサービス アーキテクチャ、クラウド ネイティブ アプリケーション、分散システムに適しています。 Nacos は、構成を一元管理することで、企業が構成管理の効率とセキュリティを向上させると同時に、開発と運用保守作業を簡素化できるように支援します。

2. Nacos 構成センターの使用手順

使用手順は公式ドキュメントに詳細に記録されており、クリックしてドキュメントを表示します。nacos.io のドキュメント

1. 構成センターで Maven の依存関係を宣言します。

構成センターを使用するには、まず依存関係を追加する必要があります。

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

Guli Mall プロジェクトでは、すべてのサービスが Nacos 構成センターを使用する必要があるため、この依存関係が共通モジュールに追加されます。

2. bootstrap.properties で Nacos サーバーのアドレスとアプリケーション名を設定します。

プロジェクトまたはモジュールのリソース ディレクトリで、bootstrap.properties で Nacos サーバーのアドレスとサービス名を宣言します。

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
  • 1
  • 2

3. Nacos 構成リスト インターフェイスで構成ファイルを作成します。

ここに画像の説明を挿入します

「構成の作成」をクリックすると、次のページが表示されます。

ここに画像の説明を挿入します

  • ①データIDはファイル名に相当し、gulimall-coupon.propertiesなどのサービス名を含める必要があります。
  • ② 設定ファイルの種類は複数の種類をサポートします。マイクロサービスの場合、通常は yaml またはプロパティです。
  • ③ ブラックボックスには、入力する設定情報が含まれています

存在する Nacos Spring Cloud 真ん中、Data Id の完全な形式は次のとおりです。

${prefix}-${spring.profiles.active}.${file-extension}
  • 1
  • prefix デフォルトはspring.application.name 値は構成アイテムを介して渡すこともできますspring.cloud.nacos.config.prefix設定します。
  • spring.profiles.active つまり、現在の環境に対応するprofile詳細については、Spring Boot のドキュメントを参照してください。 注: いつ spring.profiles.active 空の場合、対応するコネクタは存在せず、dataId のスプライシング形式は次のようになります。${prefix}.${file-extension}
  • file-exetension コンテンツのデータ形式を設定するには、設定項目を渡すことができますspring.cloud.nacos.config.file-extension 設定します。現在サポートしているのはproperties そしてyaml タイプ。

3、テスト

1. プロジェクトに構成情報を配置します

まずプロジェクト構成ファイルに情報を入力し、クーポン モジュールの構成ファイル application.properties で次の情報を構成します。

coupon.user.name=lcy
coupon.age=22
  • 1
  • 2

ここに画像の説明を挿入します

2. テストコードを書く

構成ファイル内の構成情報を使用するメソッドをコントローラーに追加します。

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

上記のコードでは、構成ファイル内の構成をアノテーション @Value を介してクラス変数に挿入し、それをメソッド内で参照していることに注意してください。

3. テスト

サービス開始後、ブラウザに以下のアドレスを入力してください。

http://localhost:7000/coupon/coupon/test
  • 1

出力は次のようになり、構成ファイル内の情報が読み取られたことを示します。
ここに画像の説明を挿入します

4. 構成センターに構成情報を設定します。

クーポンサービスを例として設定します。
ここに画像の説明を挿入します

構成ファイルリストの右側にある編集ボタンをクリックして、編集インターフェイスに入ります。

ここに画像の説明を挿入します

構成センター構成ファイルとローカル構成ファイルの違いと関係を明確にするために、前の手順ではローカル構成を削除しなかったことに注意してください。

現在、構成センターで構成されている構成は 1 つだけです。この構成はローカル構成でも使用できますが、ローカル構成では値が異なります。coupon.user.name=lcy、構成センターはcoupon.user.name=lcy2

サービスを再起動した後、ブラウザを更新すると、結果は次のようになります。

ここに画像の説明を挿入します
明らかに、name の値はローカル構成ファイルではなく構成センターから取得されます。構成センターの値は、ローカル構成ファイルの値を上書きします。

エラーログ

Guli Mall 構成センターのエラー記録