【轉】 SpringCloudAlibaba之Nacos Config配置中心實戰
SpringCloudAlibaba微服務實戰教程系列
-------------------------------目錄-----------------------------------
一、無腦應用
1、添加nacos配置
2、引入pom文件
3、配置config服務地址
4、注解使用
二、高級應用
1、nacos數據模型
2、區分環境應用
3、應用引入多個配置文件
---------------------------------------------------------------------
一、無腦應用
1、在nacos管理台進行添加配置(主要看圖和第二個框框)
需要注意的是DataID屬性的值為配置文件名格式為:${prefix}-${spring.profile.active}.${file-extension}
配置方式說明:
prefix 默認為 spring.application.name的值,也可以通過配置項spring.cloud.nacos.config.prefix 來配置。 spring.profile.active 即為當前環境對應的 profifile。 注意:當 spring.profile.active為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension} file-extension為配置內容的數據格式,可以通過配置項spring.cloud.nacos.config.file-extension來配置。⽬前只⽀持 properties 和 yaml類型。
哈哈~~,你如果看不懂我來簡單說
prefix就是配置的服務名稱,我這里服務名叫nacos-provider spring.profile.active就是啟動時候指定的啟動配置文件后綴(比如dev、test、prod),我這里啟動的時候沒有指定 file-extension就是文件的后綴,比如yml(nacos只能選擇yaml)、properties,我這里使用的yaml
2、引入pom文件
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
3、配置項目文件
在resources中創建bootstrap.yml文件,配置配置中心信息
spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml namespace: public
4、使用配置變量
在類上面添加原生刷新注解@RefreshScope,在屬性引用上添加@Value注解,這樣變量就會實時進行刷新了,方便吧~
二、高級應用
1、nacos數據模型
首先Namespace命名空間、Group分組、集群這些概念都是為了進⾏歸類管理,把服務和配置⽂件進⾏歸類,進而實現一些功能:⽐如數據隔離、服務隔離,對於服務來說,不同命名空間中的服務不能夠互相訪問調⽤。
Namespace:命名空間,對不同的環境進⾏隔離,⽐如隔離開發環境、測試環境和⽣產環境
Group:分組,將若⼲個服務或者若⼲個配置集歸為⼀組,通常習慣⼀個系統歸為⼀個組
Service:某⼀個服務,⽐如java某個應用實例
DataId:配置集或者可以認為是⼀個配置⽂件
詳情請參考官網:Nacos官網
2、區分環境應用
在nacos管理台上添加命名空間,並且在配置文件中指定namespace屬性,進行配置或者服務的完全隔離
3、應用引入多個配置文件
主要是 ext-config 屬性:
a、指定拓展文件data-id, b、需要設置刷新,默認不會動態刷新 c、文件優先級,默認配置高於拓展配置,拓展配置數組下標越大優先級越高
spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml namespace: public #以下為加載多個文件數組信息 直接指定dataid(對於擴展的dataId,[n] n越⼤優先級越⾼),也可以添加 group屬性 ext-config[0]: data-id: xxx.yaml #默認數據不會主動刷新,添加改屬性會動態刷新 refresh: true ext-config[1]: data-id: xxx.yaml #默認數據不會主動刷新,添加改屬性會動態刷新 refresh: true
注意nacos客戶端依賴與nacos服務端版本不一致導致的md5數據不一樣,不停的刷新日志情況--->>解決方案
或者 com.alibaba.nacos.client: error 提高日志級別