個人名刺:
ブロガー:アルコール依存症ᝰ。
個人プロフィール:ワインに酔いしれ、お酒で未来を切り拓く。
この記事は感動的です: 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 ディレクトリで、空白スペースを右クリックし、ターミナルで開きます。
次のコマンドを入力します: .\startupup.cmd -m スタンドアロン
2.ナコス追加
以下のように追加できます。
3.アイデアの操作
- 依存関係のインポート
userservice-dev.yaml は nacos で構成され、以下のすべての操作は user-service モジュールで実行されます。
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- bootstrap.yml ファイル
spring:
application:
name: userservice # 服务名称
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
config:
file-extension: yaml # 文件后缀名
- プロパティ注入
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
- 訪問結果
2.ホットアップデート
この時点で、nacos の構成を変更したら、サービスを再起動して有効にする必要があります。
目的: 直接有効にするには、nacos の構成を変更する必要があります。
方法 1: @RefreshScope アノテーションをコントローラー クラスに直接追加する
import org.springframework.cloud.context.config.annotation.RefreshScope;
@RefreshScope
public class UserController {
//...省略
}
方法 2: @ConfigurationProperties で注釈を付ける
1. 新しいモジュール構成を作成し、その中に新しいクラス PatternProperties を作成します。
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. マルチ環境構成共有 (省略)
優先度: [サービス名]-[プロファイル].[yaml] > [サービス名].[yaml] > [ローカル設定]
1. 共有 nacos 構成を作成する
この時点で、 **[サービス名]-[プロファイル].[yaml]内のプロファイルがどのように変更されても、 [サービス名].[yaml] ** は必ず読み込まれます。
- プロフィールを修正する
変更するサービスを右クリックして [編集] を選択し
、変更したプロファイル値を [アクティブなプロファイル] に入力します。
2.共有構成を設定する
1. 方法 1: extension-configs
spring:
cloud:
nacos:
config:
extension-configs:
- extend.yaml
2. 方法 2: 共有設定
spring:
cloud:
nacos:
config:
shared-configs:
- common.yaml
4. クラスター構築
5.異常解像度
1. nacos サーバーが開始されておらず、次のように、接続が拒否されました: 接続例外が報告されます。
正しい操作でnacosを起動します。