Alibaba Nacos 四 :Nacos的野心,不僅僅是服務註冊,我還要配置中心

阿里在技術的道路上越走越遠,野心也越來越大,實力越來越強。Nacos憑藉一己之力,單挑Eureka,Spring Cloud Config。勇氣可嘉。

本篇文章來實戰一下nacos作爲配置中心。

  • 基本配置

  • 配置動態刷新

  • 分類配置

    • 使用不同的data ID區分不同的配置

    • 使用不同的GROUP

    • 使用不同的命名空間

 

1.基本配置

按照如圖所示,新建module,對應的類,配置文件。

啓動類:ConfigMain

package com.xhc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class ConfigMain {

    public static void main(String[] args) {
        SpringApplication.run(ConfigMain.class,args);
    }
}

ConfigControlle類

package com.xhc.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope // 支持Nacos的動態刷新功能
public class ConfigController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}

application.yml

spring:
  profiles:
    active: dev  # 配置什麼環境就加載什麼環境的配置

bootstrap.yml

server:
  port: 7777

spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服務註冊中心地址
      config:
        server-addr: localhost:8848 #Nacos作爲配置中心地址
        file-extension: yaml #指定yaml格式配置

然後登錄nacos,在nacos中新建配置

由於我們在配置文件中激活的是dev,所以Data ID也可以寫成:nacos-config-dev.yaml

配置新建完成後,啓動項目,訪問http://localhost:7777/config/info,即可從nacos中得到配置信息。

 

2. 配置動態刷新

在需要刷新配置的類上加上@RefreshScope註解即可實現動態配置動態刷新,操作十分簡便。

再一次訪問http://localhost:7777/config/info,即可發現信息已經發生了變化。

3.分類配置

Nacos設計使用NameSpace+Group+Data ID來實現多環境多項目的管理。

NameSpace用於區分部署環境,Group和Data ID邏輯上區分兩個目標對象。

通常我們的環境分爲:開發,測試,灰度,生產,這個時候我們就可以創建4個nameSpace,不同的nameSpace之間是隔離的。

Group默認是DEFAULT_GROUP,Group可以把不同的微服務劃分到同一個分組裏面去。

下面我們分別實踐三種情況

3.1.使用不同的data ID區分不同的配置

Data ID的命令規範:項目名稱-激活的環境-配置文件後綴(nacos-config-dev.yaml)

新建一個test的配置,命名:nacos-config-test.yaml

修改application.yml中的active爲test

啓動項目訪問,即可看見test的配置信息。

3.2.使用不同的GROUP

新建DEV_GROUP的配置信息

新建TEST_GROUP的配置信息

新建完成後,會有兩個不同GROUP的配置信息

修改配置文件:

啓動,即可讀取到指定的GROUP配置信息。

3.3.使用不同的命名空間

如下圖所示,nacos默認命名空間是public,不能刪除和修改。

新建dev和test的命名空間。

點擊配置列表菜單,可以看見已經有了剛剛新建的命名空間

點擊dev,切換到dev的命名空間下,發現此時是沒有配置的,我們新建一個配置信息

在項目中如何使用到的dev命名空間的配置呢?

如下圖,添加namespace配置即可實現不同命名空間配置的切換。namespace的參數是命令空間的id。

啓動項目,發現讀取的配置已經更換到指定的命名空間下了。

按照上述方法在test命名空間下新建配置,然後將namespace的配置更換成test命名空間的id,重新啓動項目,會發現配置信息變成了test命名空間下的配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章