在分布式系統中,每一個功能子產品都能拆分成一個獨立的服務,一次請求的完成,可能會調用很多個服務協調來完成,為了友善服務配置檔案統一管理,更易于部署、維護,是以就需要分布式配置中心元件了,在spring cloud中,有分布式配置中心元件spring cloud config,它支援配置檔案放在在配置服務的記憶體中,也支援放在遠端Git倉庫裡。引入spring cloud config後,我們的外部配置檔案就可以集中放置在一個git倉庫裡,再建立一個config server,用來管理所有的配置檔案,維護的時候需要更改配置時,隻需要在本地更改後,推送到遠端倉庫,所有的服務執行個體都可以通過config server來擷取配置檔案,這時每個服務執行個體就相當于配置服務的用戶端config client,為了保證系統的穩定,配置服務端config server可以進行叢集部署,即使某一個執行個體,因為某種原因不能提供服務,也還有其他的執行個體保證服務的繼續進行。
分享一個在網上看到架構圖:

下面就在前幾篇的文章的基礎上,作一些修改,實際感受一下。
一、建立一個maven項目:configServer
完整的pom.xml如下:
在本地倉庫建立一個lisiService-dev.properties和lisiService-prod.properties的配置檔案,然後推送到遠端的git倉庫(這裡貼出我在碼雲上建立的遠端倉庫https://gitee.com/fox9916/springCloudConfig),
lisiService-dev.properties内容如下:
lisiService-prod.properties内容如下:
完整的application.properties:
在啟動類上開啟配置中心的注解:@EnableConfigServer
服務端配置完成,下面驗證一下服務端的配置有沒有什麼問題,依次啟動serviceCenter、configServer,在浏覽器裡輸入http://localhost:8091/lisiService/dev或
http://localhost:8091/lisiService-dev.properties或http://localhost:8091/master/lisiService-dev.properties後,傳回内容:
從裡可以看到lisiService-dev.properties裡的内容,則說明配置沒有問題,如果傳回内容類似,沒有isiService-dev.properties裡的内容,說明配置有問題,沒有讀取到配置檔案。
證明配置服務中心可以從遠端程式擷取配置資訊,http請求位址和資源檔案映射如下:,可參考
二、對上一篇文章中建立的lisiService作一些改動,驗證一下是否能從遠端倉庫裡讀取到配置内容
在pom.xml裡添加配置:
在resources目錄下建立檔案bootstrap.properties,内容:
Application.properties配置内容不變:
依次啟動serviceCenter ,configService, lisiService ,打開浏覽器通路:Http://localhost:8765/test,傳回内容:
你好,我是lisi,年齡:18歲。目前環境:prod
這說明lisiService通過configService配置中心擷取到了遠端倉庫spingCloudConfig的配置檔案内容
要更多幹貨、技術猛料的孩子,快點拿起手機掃碼關注我,我在這裡等你哦~