該技術(shù)類似Spring Cloud Config。
1 配置管理的意義
現(xiàn)實(shí)的痛點(diǎn)
- 不同環(huán)境,不同配置
- 配置屬性動(dòng)態(tài)刷新
為解決痛點(diǎn),常用方案是引入配置服務(wù)器,架構(gòu)如下
- 引入依賴
- 寫配置(約定大于配置),要謹(jǐn)遵如下映射關(guān)系圖哦
- 創(chuàng)建新的bootstrap.yml配置文件
- 在NACOS操作面板配置
- 啟動(dòng)內(nèi)容中心
2 配置的動(dòng)態(tài)刷新
修改配置后,應(yīng)用可動(dòng)態(tài)刷新配置,而無需重啟應(yīng)用
- 添加 @RefreshScope 注解即可
回滾Bug
不要回滾到初始狀態(tài)! Nacos 至今未解決。
- https://github.com/alibaba/nacos/issues/186
- https://qithub.com/alibaba/nacos/issues/434
既然遲遲不修復(fù),我們只能盡量避免使用歷史版本,而直接修改配置。
3 共享配置
3.1 相同應(yīng)用內(nèi)
所指定的 > 通用的
3.2 不同應(yīng)用間
- 比如這段配置在用戶/內(nèi)容中心都有,可以將其交給nacos管理共享配置
下面看NACOS配置共享的兩種方案:
shared-detaids
ext-config
優(yōu)先級(jí)
shared-dataids < ext-config < 自動(dòng)
4 引導(dǎo)上下文
4.1 用來連接配置服務(wù)器,讀取外部配置
bootstrap.yml就是引導(dǎo)上下文的配置文件。對(duì)于應(yīng)用,就是來連接Nacos以讀取Nacos中的配置。
4.2 Application Context的父上下文
遠(yuǎn)程配置(Nacos) & 本地配置優(yōu)先級(jí) 默認(rèn)情況下,遠(yuǎn)程配置優(yōu)先級(jí)較高哦
- 如下的配置文件必須放在遠(yuǎn)程配置中才生效
5 數(shù)據(jù)持久化
5.1 作為服務(wù)發(fā)現(xiàn)組件
其數(shù)據(jù)都是存在本地路徑:
~/nacos/naming/public
5.2 作為配置服務(wù)器
數(shù)據(jù)分為如下兩部分
NACOS web ui中添加的配置數(shù)據(jù):
$NACOS_ HOME/data/derby-data
- 如果想查看其具體內(nèi)容,必須停止nacos,然后連接Derby這個(gè)Apache開發(fā)的內(nèi)嵌數(shù)據(jù)庫,通過IDEA的數(shù)據(jù)源連接
- 配置屬性的快照 ~/nacos/config
6 Nacos配置管理最佳實(shí)踐
- 能放本地,不放遠(yuǎn)程
- 盡量規(guī)避優(yōu)先級(jí)
- 定規(guī)范,例如所有配置屬性都要加上注釋
- 配置管理人員盡量少(官方正在開發(fā)權(quán)限控制)






