免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

SpringConfig的使用方法

這篇文章主要介紹“Spring Config的使用方法”,在日常操作中,相信很多人在Spring Config的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring Config的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

10年積累的網站建設、網站設計經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先制作網站后付款的網站建設流程,更有福貢免費網站建設讓你可以放心的選擇與我們合作。

配置其實分為結構和內容兩個方面,結構對應的是代碼,比如1.0.0新開發的代碼上有一個功能開關${feature.switchA},但master上還沒有,這就是結構的變化。另一方面是內容,1.0.0的開發分支有兩個測試環境,連著不同的數據庫,那么對應的${MySQL.url}的內容肯定不同。

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

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。

方法一:用label + profile區分

NameBranchProfile
foo-shanghai.yamlstgshanghai
foo-beijing.yamlstgbeijing
foo-shanghai.yamlprdshanghai
foo-beijing.yamlPrdbeijing
branch其實表示的是結構,即對應不同的代碼,而profile對應的是內容。

這種方式有什么問題?一般應用都是只有profile來區分環境,比如logback要分環境區分配置也是通過<springProfile>來指定。一旦采用兩個維度來確定唯一的配置,那么所有項目都需要有label這個變量。

試想如果foo這個應用在線上有個bug需要fix,勢必會增加一個hotfix的branch在配置中心,同時還需要增加相應的profile,對應foo的label變量設置為hotfix,profile設置為beijing或者shanghai。

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

方法二:只使用profile區分

NameBranchProfile
foo-stg-shanghai.yamlmasterstg-shanghai
foo-stg-beijing.yamlmasterstg-beijing
foo-prd-shanghai.yamlmasterprd-shanghai
foo-prd-beijing.yamlmasterprd-beijing

這種方式可以降低管理維度,即放棄label的維度,只有profile的維度。同樣的問題,如果foo這個應用在線上有個bug需要fix,那么需要新增兩個profile,hotfix-beijing和hotfix-shanghai。雖然維度降低了,但是管理上卻有些麻煩。因為master的這個分支無法保護起來,如果有開發人員直接修改了prd-XXX的環境就會導致線上問題。

同樣的,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的能力。

到此,關于“Spring Config的使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!

分享名稱:SpringConfig的使用方法
分享地址:http://newbst.com/article24/jhsjce.html

成都網站建設公司_創新互聯,為您提供品牌網站建設云服務器網站設計公司網站排名靜態網站建站公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設