本章主要內容是:使用Nacos管理配置以及實現配置管理的原因,配置如何管理以及動態刷新和最佳實現總結,最后是Nacos配置刷新原理解讀
該技術類似於Spring Cloud Config
1 配置管理的意義
項目痛點
不同環境 ,不同配置
配置屬性動態刷新
為了解決痛點,常用方案是引入配置服務器,架構如下:
- 引入依賴
- 寫配置(約定大於配置),要謹遵如下映射關系圖哦
- 創建新的bs.yml配置文件
- 在NACOS操作面板配置
- 啟動內容中心
2 配置的動態刷新
修改配置后,應用可以動態刷新配置,而不需要重啟應用
- 添加@RefreshScope注解即可
回滾的Bug(不要回滾到初始狀態! Nacos 1.2會解決)
可以盡量避免使用歷史版本,而直接修改配置
3 共享配置
3.1 相同應用內
所指定的大於通用的
3.2 不同應用間
- 比如這段配置在用戶/內容中心都有,可以將其交給nacos管理共享配置
下面看NACOS配置共享的兩種方案:
shared-detaids
ext-config
優先級
shared-dataids < ext-config < 自動
4 引導上下文
4.1 用來連接配置服務器,讀取外部配置
我們的bootstrap.yml就是引導上下文的配置文件
對於我們的應用來說,就是來連接NACOS,讀取NACOS中的配置的
4.2 Application Context的父上下文
遠程配置(NACOS) & 本地配置優先級
默認情況下,遠程配置優先級較高哦
- 如下的配置文件必須放在遠程配置中才生效
5 數據持久化
5.1 作為服務發現組件
其數據都是存在本地路徑:
~/nacos/naming/public
5.2 作為配置服務器
數據分為如下兩部分
NACOS web ui中添加的配置數據:
$NACOS_ HOME/data/derby-data
如果想查看其具體內容,必須停止nacos,然后連接Derby這個Apache開發的內嵌數據庫,通過IDEA的數據源連接
配置屬性的快照
~/nacos/config
6 搭建生產可用的Nacos集群
一次搭建即可,也不一定就你哦!
- 推薦閱讀
搭建生產可用的Nacos集群
7 NACOS配置管理最佳實踐
- 能放本地,不放遠程
- 盡量規避優先級
- 定規范,例如所有配置屬性都要加上注釋
- 配置管理人員盡量少(官方正在開發權限控制)