1. 程式人生 > 資訊 >訊息稱任天堂將為 Switch 推出新手柄

訊息稱任天堂將為 Switch 推出新手柄

微服務配置檔案的問題

  • 微服務專案太多 配置檔案太多不易修改
  • 服務修改配置檔案後必須重啟才能生效
  • 無法根據配置檔案切換執行環境

配置中心解決的問題:

  • 無需重啟服務 修改配置檔案後直接生效
  • 統一進行配置檔案管理
  • 提供統一介面 服務根據介面拉取配置檔案

搭建配置中心

執行nacos server沒有什麼好說的

匯入spring cloud和spring cloud alibaba的配置檔案


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2020.0.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

匯入nacos config包

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

之前寫bootstrap配置檔案無法生效 原因是SpringBoot 2.4之後,為了適應雲原生,對基礎配置檔案使用方式做了調整。
所以還得匯入

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

在nacos server中建立配置檔案

點選右上角+

字尾為yaml dataID必須和bootstartp.yml中的spring.application.name一致

配置nacos config

首先建立bootstrap配置檔案 並配置application name nacos server地址 還有配置檔案字尾

spring:
  application:
    name: nacos-config-demo
  cloud:
    nacos:
      config:
        # 配置檔案字尾
        file-extension: YAML
        # 伺服器ip地址和埠號
        server-addr: 10.0.4.3:8848

server:
  port: 7979

最後在controller中注入配置檔案的值 檢視配置檔案是否生效

@RestController
@RefreshScope
public class ConfigTestController {
    @Value("${name}")
    private String name;

    @GetMapping("/myName")
    public String sayMyName() {
        return  "my name is " + name;
    }
}

修改配置檔案後 將會動態更新到服務中