一、nacos配置文件加載順序
nacos中配置文件的加載順序是優(yōu)先加載group為“${spring.application.name}”的配置文件,其次加載“DEFAULT_GROUP”組的配置文件。同一group的同名配置項(xiàng),優(yōu)先級(jí)高的會(huì)覆蓋優(yōu)先級(jí)低的配置項(xiàng)。
舉個(gè)例子,假設(shè)應(yīng)用名為"demo",那么nacos會(huì)先加載group為“demo”的配置文件,如果找不到任何配置項(xiàng),就會(huì)加載“DEFAULT_GROUP”組的配置文件。
二、nacos配置文件存在哪里
nacos配置文件可以存在于nacos的存儲(chǔ)中心(nacos server),也可以存儲(chǔ)在本地磁盤中??梢酝ㄟ^nacos的客戶端來獲取nacos存儲(chǔ)中心中的配置文件,也可以使用spring cloud config實(shí)現(xiàn)從本地磁盤中獲取配置文件。
通過nacos客戶端獲取nacos存儲(chǔ)中心中的配置文件的代碼示例:
@Autowired private ConfigService configService; public String getConfig(String dataId, String group, long timeout) throws NacosException { return configService.getConfig(dataId, group, timeout); }
三、nacos配置文件命名規(guī)則
nacos的配置文件名字主要由dataId和group兩部分組成,一個(gè)group下可以有多個(gè)dataId,同一個(gè)dataId下也可以有多個(gè)配置項(xiàng),但是配置項(xiàng)必須用key-value方式進(jìn)行配置。一個(gè)示例配置文件的dataId和group規(guī)則為:demo-service.properties:
dataId: demo-service.properties group: DEFAULT_GROUP
四、nacos配置文件名稱
nacos支持多種配置文件類型,如properties,yaml,json,txt等,具體的文件后綴名由應(yīng)用自行指定,并在nacos配置文件中聲明即可。nacos也支持按照環(huán)境進(jìn)行配置文件命名,如demo-dev.properties、demo-test.properties等,具體命名規(guī)則要與應(yīng)用開發(fā)人員協(xié)商。
五、nacos配置文件加密
為了安全起見,我們可以對(duì)配置文件中的敏感信息進(jìn)行加密。nacos的配置項(xiàng)支持加密,我們可以在配置文件中聲明需要加密的key,然后將敏感信息加密并替換原本在配置文件中的明文信息。nacos提供了內(nèi)置的加密/解密插件,默認(rèn)采用AES方式進(jìn)行加密。
聲明配置文件需要加密的示例:
## 開啟加密配置項(xiàng) encrypt.enable=true ## 需要加密的字段 name=ENC(k0K3EgbeT7IBBAm8J+kn0g==)
六、nacos配置文件優(yōu)先級(jí)
同一group下,配置項(xiàng)按照優(yōu)先級(jí)高低來進(jìn)行覆蓋。優(yōu)先級(jí)的定義是在配置項(xiàng)的value值后添加三個(gè)點(diǎn)和一個(gè)數(shù)字,數(shù)字越大,優(yōu)先級(jí)越高。示例:
name=value... name=value..... name=value......
七、nacos配置文件不生效
在使用nacos配置文件的過程中,我們可能遇到配置文件修改了但是生效不了的問題。一般情況下,可以檢查以下幾個(gè)方面:
1、檢查配置文件是否已經(jīng)成功發(fā)布到nacos服務(wù)器上。
2、檢查應(yīng)用的nacos配置文件客戶端是否正常運(yùn)行,注意端口和ip的配置是否正確。
3、檢查nacos存儲(chǔ)配置文件時(shí)的編碼格式是否與應(yīng)用中的編碼格式一致。
4、檢查配置文件中的占位符是否正確,如果存在錯(cuò)誤的占位符,可能會(huì)導(dǎo)致配置文件不生效。
5、檢查應(yīng)用中是否與nacos客戶端沖突的配置項(xiàng)。
八、nacos配置文件注入對(duì)象
在使用nacos配置文件的過程中,我們還可以通過“@NacosValue”注解來注入對(duì)象,方便我們使用配置文件中的配置項(xiàng)。示例:
## 配置項(xiàng)demo.name demo.name=hello ## 通過@NacosValue注解來注入對(duì)象 @Component public class DemoComponent { @NacosValue(value = "${demo.name}", autoRefreshed = true) private String name; // getter }
九、nacos配置文件后綴選取
我們可以自定義配置文件后綴名,方便應(yīng)用在不同的環(huán)境中使用不同的配置文件。示例:
在application-dev.properties中聲明配置文件后綴名:
spring.profiles.active=dev ## ## 下面這行是自定義nacos配置文件的后綴名 ## spring.cloud.nacos.config.file-extension=properties