當一個系統中的配置檔案發生改變的時候,我們需要重新啟動該服務,才能使得新的配置檔案生效,spring cloud config可以實作微服務中的所有系統的配置檔案的統一管理,而且還可以實作當配置檔案發生變化的時候,系統會自動更新擷取新的配置。
其架構原理圖大緻如下:

我們将配置檔案放入git或者svn等服務中,通過一個Config Server服務來擷取git中的配置資料,而我們需要使用的到配置檔案的Config Client系統可以通過Config Server來擷取對應的配置。
下面我們通過一個示例來示範一下config是如何被各個微服務系統擷取到的。
1.向git中上傳示例配置檔案
檔案名分别為:
對應不同的三個環境。
該檔案的命名規則是:{application}-{profile}.properties
2.搭建Config Server
2.1 添加依賴
2.2 編寫ConfigApplication
2.3 編寫yml配置檔案
這是我們啟動該服務,通路該配置檔案,通路路徑示例如下(以該配置為例):
127.0.0.1:6688/microservice-dev.properties
通路路徑的寫法也有多種方式:
3. Config Client的搭建
3.1 添加依賴
3.2 添加yml配置檔案
注意,這裡的yml配置檔案是:bootstrap.yml,它和application.yml檔案一樣,會被spring boot加載,但是bootstrap.yml會優先加載。
3.3 在application.yml檔案中添加配置
3.4 利用git的webhook實作實時更新通知
這個時候,我麼通過@Value的方式,就可以擷取到對應的配置了。
再次測試,我們發現當我們修改了git中的配置檔案的内容之後,client系統中讀取到的屬性也是修改之後的了。
到此為止,其架構變成如下: