阿里在技術的道路上越走越遠,野心也越來越大,實力越來越強。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命名空間下的配置。