SpringCloud2 - Nacos 構成管理

画像の説明を追加してください
個人名刺:

ブロガーアルコール依存症ᝰ。
個人プロフィール:ワインに酔いしれ、お酒で未来を切り拓く。
この記事は感動的です: 3 人が歩いて、私の先生がいるに違いありません。

画像の説明を追加してください
このプロジェクトは、ステーション B Java のダークホース プログラマー「SpringCloud Microservice Technology Stack」に基づいており、SpringCloud+RabbitMQ+Docker+Redis+search+distributed

[SpringCloud+RabbitMQ+Docker+Redis+search+distributed, システム詳細 springcloud マイクロサービス テクノロジー スタック コース|ダーク ホース プログラマー Java マイクロサービス]クリックして視聴

1. 構成管理の一元化

1.nacosを起動

nacos の bin ディレクトリで、空白スペースを右クリックし、ターミナルで開きます。
画像.png
次のコマンドを入力します: .\startupup.cmd -m スタンドアロン
画像.png

2.ナコス追加

以下のように追加できます。
画像.png画像.png

3.アイデアの操作

  1. 依存関係のインポート

userservice-dev.yaml は nacos で構成され、以下のすべての操作は user-service モジュールで実行されます。

<!--nacos配置管理依赖-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  1. bootstrap.yml ファイル
spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名
  1. プロパティ注入
package cn.itcast.user.web;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@RestController
@RequestMapping("/user")
public class UserController {
    
    
    
    @Value("${pattern.dateformat}")
    private String dateformat;
    
    @GetMapping("/now")
    public String now(){
    
    
        return LocalDateTime.now().format(
            DateTimeFormatter.ofPattern(properties.getDateformat())
        );
    }
    
    /*
    省略...
    */
}

4. テスト

  • アクセスパス

http://localhost:8081/user/now

  • 訪問結果

画像.png

2.ホットアップデート

この時点で、nacos の構成を変更したら、サービスを再起動して有効にする必要があります。
目的: 直接有効にするには、nacos の構成を変更する必要があります。

方法 1: @RefreshScope アノテーションをコントローラー クラスに直接追加する

import org.springframework.cloud.context.config.annotation.RefreshScope;

@RefreshScope
public class UserController {
    
    
    //...省略
}

方法 2: @ConfigurationProperties で注釈を付ける

1. 新しいモジュール構成を作成し、その中に新しいクラス PatternProperties を作成します。
画像.png
2. PatternProperties クラスにコードを記述します

package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    
    
    private String dateformat;
}

3. Controller のコードを変更します. 先に PatternProperties クラスを作成した後、nacos 構成を新しいクラスに移動します. ここで、新しいクラスを呼び出して取得する必要があります。これは、ホット アップデートに便利です.

package cn.itcast.user.web;

import cn.itcast.user.config.PatternProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    
    

    @Autowired
    private PatternProperties properties;

    @GetMapping("/now")
    public String now(){
    
    
        return LocalDateTime.now().format(
                DateTimeFormatter.ofPattern(properties.getDateformat())
        );
    }
}

3. マルチ環境構成共有 (省略)

画像.png
優先度: [サービス名]-[プロファイル].[yaml] > [サービス名].[yaml] > [ローカル設定]

1. 共有 nacos 構成を作成する

画像.png
この時点で、 **[サービス名]-[プロファイル].[yaml]内プロファイルがどのように変更されても、 [サービス名].[yaml] ** は必ず読み込まれます。

  • プロフィールを修正する

変更するサービスを右クリックして [編集] を選択し
画像.png
、変更したプロファイル値を [アクティブなプロファイル] に入力します。
画像.png

2.共有構成を設定する

1. 方法 1: extension-configs

spring:
  cloud:
    nacos:
      config:
        extension-configs:
          - extend.yaml

2. 方法 2: 共有設定

spring:
  cloud:
    nacos:
      config:
        shared-configs:
          - common.yaml

4. クラスター構築

nacos クラスタ build.md

5.異常解像度

1. nacos サーバーが開始されておらず、次のように、接続が拒否されました: 接続例外が報告されます。
ここに画像の説明を挿入

正しい操作でnacosを起動します。

おすすめ

転載: blog.csdn.net/m0_65144570/article/details/127080826