springcloud alibaba-nacos配置中心

愛程式設計DE文兄發表於2021-02-28

  nacos除了充當註冊中心外,還能作為配置中心,下面進行演示。

  1. 建立 模組,用於讀取 nacos配置中心的統一配置

  2. 新增依賴

<dependencies>
        <!--   nacos config     -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--  SpringCloud alibaba nacos    -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--  web元件      -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>cn.aib.springcloud</groupId>
            <artifactId>springclud-api-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

  3. 新增配置;這裡配置有兩個:bootstrap.yml和appliation.yml。前者是為了讀取共用的配置,後者是本模組私有的配置

  bootstrap.yml:

server:
  port: 3377
spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #註冊中心的地址
      config:
        server-addr: localhost:8848 #配置中心的地址
        file-extension: yaml # 要讀取nacos上的配置檔案的字尾,這裡只能是yaml,不能是yml

  application.yml:

spring:
  profiles:
    active: dev

  4. 主啟動

@EnableDiscoveryClient
@SpringBootApplication
public class NacosCientApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosCientApplication.class, args);
    }
}

  5. 啟動nacos

  6. 在nacos新增統一配置資訊

  6. 測試;訪問http://localhost:3377/config/info

  總結:

    1. 配置中心預設讀取 nacos上的 ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension};因此DataID 的命名要符合 服務名-開發環境名.字尾名

    2. 目前nacos支援yaml,不支援yml

    3. 如果要動態重新整理,需要加業務類上加 @RefreshScope

相關文章