天天看點

【SpringCloud 】分布式配置中心

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

分享一個在網上看到架構圖:

【SpringCloud 】分布式配置中心

下面就在前幾篇的文章的基礎上,作一些修改,實際感受一下。

一、建立一個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的配置檔案内容

要更多幹貨、技術猛料的孩子,快點拿起手機掃碼關注我,我在這裡等你哦~

繼續閱讀