一、nacos配置文件加載順序

nacos中配置文件的加載順序是優(yōu)先加載group為“${spring.application.name}”的配置文件,其次加載“DEFAULT_GROUP”組的配置文件。同一group的同名配置項(xiàng),優(yōu)先級高的會覆蓋優(yōu)先級低的配置項(xiàng)。
舉個例子,假設(shè)應(yīng)用名為"demo",那么nacos會先加載group為“demo”的配置文件,如果找不到任何配置項(xiàng),就會加載“DEFAULT_GROUP”組的配置文件。
二、nacos配置文件存在哪里
nacos配置文件可以存在于nacos的存儲中心(nacos server),也可以存儲在本地磁盤中??梢酝ㄟ^nacos的客戶端來獲取nacos存儲中心中的配置文件,也可以使用spring cloud config實(shí)現(xiàn)從本地磁盤中獲取配置文件。
通過nacos客戶端獲取nacos存儲中心中的配置文件的代碼示例:
@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兩部分組成,一個group下可以有多個dataId,同一個dataId下也可以有多個配置項(xiàng),但是配置項(xiàng)必須用key-value方式進(jìn)行配置。一個示例配置文件的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配置文件加密
為了安全起見,我們可以對配置文件中的敏感信息進(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)先級
同一group下,配置項(xiàng)按照優(yōu)先級高低來進(jìn)行覆蓋。優(yōu)先級的定義是在配置項(xiàng)的value值后添加三個點(diǎn)和一個數(shù)字,數(shù)字越大,優(yōu)先級越高。示例:
name=value... name=value..... name=value......
七、nacos配置文件不生效
在使用nacos配置文件的過程中,我們可能遇到配置文件修改了但是生效不了的問題。一般情況下,可以檢查以下幾個方面:
1、檢查配置文件是否已經(jīng)成功發(fā)布到nacos服務(wù)器上。
2、檢查應(yīng)用的nacos配置文件客戶端是否正常運(yùn)行,注意端口和ip的配置是否正確。
3、檢查nacos存儲配置文件時(shí)的編碼格式是否與應(yīng)用中的編碼格式一致。
4、檢查配置文件中的占位符是否正確,如果存在錯誤的占位符,可能會導(dǎo)致配置文件不生效。
5、檢查應(yīng)用中是否與nacos客戶端沖突的配置項(xiàng)。
八、nacos配置文件注入對象
在使用nacos配置文件的過程中,我們還可以通過“@NacosValue”注解來注入對象,方便我們使用配置文件中的配置項(xiàng)。示例:
## 配置項(xiàng)demo.name
demo.name=hello
## 通過@NacosValue注解來注入對象
@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

京公網(wǎng)安備 11010802030320號