技術丨怎麼用好Spring Config

2021-10-04 10:44:29 字數 2016 閱讀 6565

技術丨怎麼用好spring config

配置其實分為結構和內容兩個方面,結構對應的是**,比如1.0.0新開發的**上有乙個功能開關fea

ture

.swi

tcha

,但ma

ster

上還沒有

,這就是

結構的變

化。另一

方面是內

容,

1.0.0的開

發分支有

兩個測試

環境,連

著不同的

資料庫,

那麼對應

的,但master上還沒有,這就是結構的變化。另一方面是內容,1.0.0的開發分支有兩個測試環境,連著不同的資料庫,那麼對應的

featur

e.sw

itch

a,但m

aste

r上還沒

有,這就

是結構的

變化。另

一方面是

內容,1

.0.0

的開發分

支有兩個

測試環境

,連著不

同的資料

庫,那麼

對應的的內容肯定不同。

內容的類別上也可以分為三種:業務配置,功能開關,服務配置。

spring cloud的配置中心是spring config,經過兩年的使用,發現了其中不少的問題,有些是使用問題,有些是spring config本身的管理能力導致的問題。

spring config首推基於git的管理方式,提供了兩個管理維度,乙個是label(即branch),乙個是profile。當服務foo在一套**下要安裝多套環境,比如預發布環境有2套,一套在shanghai機房,一套在beijing機房。那麼比較自然的管理維度就是利用profile,foo-shanghai.yaml以及foo-beijing.yaml。當生產環境也依然需要2台時,怎麼處理呢?這時候就會有兩種做法,一種利用增加label維度做區分,一種依然只用profile。

branch其實表示的是結構,即對應不同的**,而profile對應的是內容。

這種方式有什麼問題?一般應用都是只有profile來區分環境,比如logback要分環境區分配置也是通過來指定。一旦採用兩個維度來確定唯一的配置,那麼所有專案都需要有label這個變數。

再考慮另一種情況,foo在prd的**需要放到stg進行驗證如何處理?foo的**版本肯定是prd的(因為stg的配置結構也許已經變了),但profile需要用stg的環境。這時實際上只能在配置中心的prd分支上新建乙個新的profile來臨時滿足這種需求。

同樣的,foo在prd的**需要放到stg進行驗證如何處理?foo的**版本肯定是prd的(因為stg的配置結構也許已經變了),但profile需要用stg的環境。這時實際上只能再配置中心新建乙個profile,比如stg-oldshanghai,來滿足這種需求。

然而我們知道,增加新的profile其實還是挺麻煩的事情,如果**中有直接比較profile的邏輯,那麼往往容易出現問題。

有沒有不臨時增加profile的辦法呢?其實仔細思考一下,在stg環境驗證prd的服務,真正的邏輯是什麼?是希望用stg環境的配置內容,以及stg某個歷史版本(與prd匹配的)的配置結構。所以縱向維度我們需要的其實是version,profile都是stg-shanghai,而version乙個是1.0.0,乙個是latest。

好了,現在我們來綜合一下兩種方式,可以使用git的分支作為version,profile依然還是按照方法二來區分。畢竟頻繁增加環境的可能性不高。但是如果要同時維護乙個profile兩個分支,其實還是要來回切換的,比較麻煩,這也是spring config為人詬病的管理功能弱。好在spring cloud也支援mysql,用mysql同時管理多個label的內容還是方便不少,只是git自帶的「後悔藥」(history)功能沒有了。所以說還是有利有弊。

如果想要更完善的配置管理工具,建議還是使用apollo。要想用好spring cloud,必須可以忍受它比較弱的管理能力,並且做好前期規劃,結合專案特點來使用label和profile的能力。

企業怎麼用好主流工作手機?

上班前收繳員工個人手機,統一使用公司配備的手機。很多企業都在這麼幹。配備主流工作手機後,再也不需要做這種讓員工 心寒 的事了。目前,市面上主流的工作手機包括 魚汛工作手機 虎鯨工作手機 雲客工作手機等。下面結合魚汛工作手機具體談談,企業如何用好工作手機 1.監管社交聊天記錄幫銷售提公升話術 以前,員...

資訊科技必修丨資訊獲取

fu wen chao 1 資訊獲取的一般過程 確定資訊需求確定資訊 採集資訊 儲存資訊 1.1確定資訊需求的過程 制定資訊需求容大綱 確定成果目標形式及所需載體型別 列出需求清單 1.2確定資訊 三類 事物本身 他人 1.3採集資訊 整理資訊 分類儲存 建資訊採集卡 輸入計算機儲存 把採集到的資訊...

電腦桌面檔案刪除怎麼恢復丨迅龍資料恢復丨

電腦桌面檔案刪除怎麼恢復丨迅龍資料恢復丨 我是漢語專業畢業的,是一名對外漢語教師,說實話,要在國內找到這樣的工作著實是不容易的。面試了很多學校,終於才找到這樣的乙個小大學,因為現在學歷高的人實在是太多了,我們,只不過是其中的小蝦公尺而已,能找到乙個不錯的,就算是離家很遠,也只能是聽天由命的 實習了兩...