當前位置:
首頁 > 最新 > Spring Config 高可用配置中心

Spring Config 高可用配置中心

Spring Config 高可用配置中心

曾經我們都把配置文件跟應用放在一起,在單體應用的時代,沒什麼問題。隨著業務的增長,促使我們的系統架構往服務化發展,應用越來越多,配置也越來越多了,還會有很多重複的配置,一次修改,需要部署重啟所有節點。後來有了很多開源的配置中心,有接觸過的有Disconf,都很不錯。在spring cloud的整個生態下,我們有Spring Confg幫我們解決配置管理的問題,結合Spring Cloud Bus,我們能夠實現配置的動態刷新。


Spring Config默認的配置倉庫是使用git,其實大多數公司還是沿用以前的svn來管理代碼,接下來,我們來用svn來做配置倉庫,存儲配置信息。


用Spring Tool Suit中的 Spring starter Project新建一個config-server項目

在接下來的步驟中,選擇maven依賴:Cofig Server,Eureka Discovery,不用STS集成環境的,可以自己在pom文件中加入依賴

注意一下svnkit這個包是為了連接svn伺服器用的,一定要加上。

接下來,在項目的啟動類上加上註解:


在application.properties文件中增加以下配置:

配置完成之後,我們啟動config-server服務,完成配置伺服器的搭建。

接下來,我們在svn指定目錄中新建我們的配置文件。

上圖中:myProject為我們的項目,默認的配置文件為myProject.properties。

application是Spring應用中的spring.config.name指定的名稱。

profile:配置文件所對應的多環境配置

label是可選的標籤,git默認為master,svn默認是trunk。

啟動伺服器,我們通過

http://localhost:4999/myProject/dev

即可獲取到對應的dev環境的配置

返回的數據會包括myProject.properties,myProject-dev.properties兩個文件中的配置信息。

新建一個客戶端項目 config-client

pom文件中增加以下依賴

**

為了能夠載入外部的配置信息,client端的配置只能寫在bootstrap文件中,bootstrap文件優先順序是最高的。

**

為了方便測試,我們用暴露一個HTTP方法來獲取配置

啟動之後,通過瀏覽器訪問

http://localhost:4306/test

返回配置文件中配置的值:hello word!

當然,我們需要在配置文件中加入配置信息

同時,你會發現,我們的bootstrap中並沒有配置服務埠4306,這個配置我們放在myProject-dev文件中,證明啟動的時候,就已經正確的從配置伺服器載入配置信息了。


Spring Config配置服務實現高可用非常簡單,只要按照以上配置,將config-server註冊到eureka服務註冊中心,啟動多個實例即可實現高可用。


前面我們已經可以通過Spring Config管理配置,也實現了配置中心的高可用。伴隨的項目的逐漸增多,我們發現配置文件都放在一個文件夾下面,容易搞混淆,我們需要每個項目的配置文件放在一個獨立目錄下,並且所有項目能共享一些公共的配置。

Spring Config支持佔位符的形式來查找配置倉庫,可以支持,經過測試,要現實子目錄的形式,需要用到的方式。

要現實子目錄的方式,我們需要在配置服務端增加以下配置:

這樣指定之後,我們的trunk目錄下就變成這樣了,每個項目的配置單獨一個文件夾,非常清晰。

項目文件夾(紅色劃線部分,名稱必須一致)

重啟我們的配置伺服器,通過以下地址,即可訪問到myProject-1項目的dev配置


通過以上步驟,我們已經實現了高可用配置中心,並實現了在客服端訪問配置中心的配置信息。

這個時候,你突然發現,修改了一個配置,提交到svn伺服器之後,客戶端並沒有獲取到最新的配置。這樣就存在一個問題,當我們在線上環境修改了配置之後,我們必須要重新受影響的應用服務(配置服務客戶端,配置伺服器端可以不重啟)才能得到最新的配置信息。

後續,我們將通過Spring Cloud Bus實現配置的自動更新。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 切點圓心 的精彩文章:

TAG:切點圓心 |