日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

0. 配置信息

配置信息特指程序啟動(dòng)時(shí)對(duì)程序進(jìn)行配置的信息,常見(jiàn)的如服務(wù)端口、數(shù)據(jù)庫(kù)連接信息、線程池信息等。

 

在系統(tǒng)啟動(dòng)時(shí),程序會(huì)通過(guò)不同的配置方案,主動(dòng)獲取配置信息,以完成系統(tǒng)的初始化工作。

因此,配置信息的管理是一件非常重要的事情。

您的配置信息是怎么管理的呢?讓我們一起見(jiàn)證下配置信息管理的不同方案。

 

1. 將配置信息寫(xiě)死在業(yè)務(wù)代碼中

在業(yè)務(wù)代碼中寫(xiě)死配置信息絕對(duì)是大部分新手常干的事情。

 

架構(gòu)設(shè)計(jì)--配置信息管理

 

 

該策略有以下幾個(gè)特點(diǎn):

  1. 配置信息與源碼揉在一起,沒(méi)有進(jìn)行分離;
  2. 在編譯前需要手工修改源碼;
  3. 不同環(huán)境所使用的 class 文件不同;
  4. 不同環(huán)境所部署的 war 包不同;

由于系統(tǒng)可能會(huì)被部署在不同的環(huán)境中(如開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境等 ), 但不同環(huán)境之間存在的差異性 (如各個(gè)環(huán)境的URL不同、賬號(hào)/密碼不同、單機(jī)所允許申請(qǐng)的最大連接數(shù)不同等 ), 會(huì)使開(kāi)發(fā)人員每次都只能通過(guò)修改業(yè)務(wù)代碼的方式進(jìn)行適應(yīng)。

在一些比較簡(jiǎn)單的單元測(cè)試場(chǎng)景中,我們可以將配置信息寫(xiě)死在測(cè)試代碼中。

 

2. 將配置信息配置到配置文件中

修改源碼會(huì)破壞系統(tǒng)的穩(wěn)定性,在大部分情況下,我們都會(huì)選擇將相關(guān)配置信息配置在配置文件中,當(dāng)系統(tǒng)啟動(dòng)時(shí),會(huì)從指定文件進(jìn)行加載,通過(guò)配置文件中的配置信息來(lái)完成環(huán)境的初始化工作。

 

架構(gòu)設(shè)計(jì)--配置信息管理

 

 

此方案存在以下特征:

  1. 完成配置信息與源碼的分離;
  2. 不同環(huán)境使用相同的 class 文件;
  3. 在打包前,需要對(duì)配置信息進(jìn)行修改;
  4. 不同環(huán)境所使用的 war 包不同(class 文件相同,但配置文件不同);
采用配置文件 ,我們可以很好地將可變的配置信息與業(yè)務(wù)代碼進(jìn)行解耦。

 

該方案有個(gè)缺陷,就是在發(fā)布前需要手工修改配置信息。對(duì)此,可以借助構(gòu)建工具的一些功能進(jìn)行簡(jiǎn)化,比如 Maven 的 Filter 功能。

 

3. 使用 Maven 的 Profile 功能

Maven 的 Profile 功能,可以在打包前完成配置文件的修改。

 

架構(gòu)設(shè)計(jì)--配置信息管理

 

 

相對(duì)之前方案,只是使用構(gòu)建工具把手工修改升級(jí)為自動(dòng)配置,對(duì)整體方案影響不大。

相信,這應(yīng)該是使用最普遍的一種配置管理策略。但該方案存在一個(gè)問(wèn)題,每個(gè)環(huán)境使用不同的部署包,結(jié)果便是測(cè)試使用的部署包與線上使用的并非 100% 相同。

 

4. 全環(huán)境打包結(jié)合運(yùn)行時(shí)配置

如何統(tǒng)一各環(huán)境使用的部署包呢?

 

我們可以使用全環(huán)境包結(jié)合運(yùn)行時(shí)配置的方式達(dá)到統(tǒng)一。

架構(gòu)設(shè)計(jì)--配置信息管理

 

 

該策略的特征如下:

  1. 將所有環(huán)境的配置文件全部打包到發(fā)布包中;
  2. 根據(jù)啟動(dòng)參數(shù)自動(dòng)加載對(duì)應(yīng)環(huán)境的配置信息;

通常的做法是在系統(tǒng)啟動(dòng)時(shí),通過(guò)JVM的啟動(dòng)參數(shù)設(shè)置系統(tǒng)屬性(如 JAVA -Denv=”dev”),當(dāng)系統(tǒng)運(yùn)行時(shí)通過(guò) System 的 getProperty (String Key)方法獲取指定的系統(tǒng)屬性值來(lái)自動(dòng)匹配當(dāng)前環(huán)境,并加載配置文件中對(duì)應(yīng)的配置信息,從而避免手動(dòng)切換。

建議大家在配置文件中預(yù)先定義好不同環(huán)境所需的配置信息項(xiàng),并由系統(tǒng)在運(yùn)行時(shí)自動(dòng)進(jìn)行匹配和加載。這樣一來(lái),從版本提測(cè)到最終測(cè)試通過(guò),運(yùn)維人員便可以直接將測(cè)試通過(guò)后的版本發(fā)布到生產(chǎn)環(huán)境中。

 

5. 集中式配置

在分布式環(huán)境中,系統(tǒng)往往都是采用集群部署的,那么集群環(huán)境中的每一個(gè)節(jié)點(diǎn)都持有同一份配置文件,一旦配置信息發(fā)生改變,就意味著集群環(huán)境中的所有配置文件都需要做出相應(yīng)的調(diào)整。而隨著系統(tǒng)拆分的粒度越來(lái)越細(xì),維護(hù)成本將會(huì)大大提升,并且配置出錯(cuò)的可能性也隨之增加,因此需要一種集中式配置管理形式,以讓所有的集群節(jié)點(diǎn)共享同一份配置信息。

 

架構(gòu)設(shè)計(jì)--配置信息管理

 

 

該策略有如下幾個(gè)特征:

  1. 配置信息存儲(chǔ)于 git 中,以此借助其強(qiáng)大的版本管理功能;
  2. 由配置服務(wù)統(tǒng)一為系統(tǒng)提供配置信息;
  3. 各環(huán)境通過(guò)環(huán)境變量指定配置服務(wù)的地址;

除此以外,配置服務(wù)還提供了很多優(yōu)勢(shì):

  1. 配置信息統(tǒng)一管理
  2. 動(dòng)態(tài)獲取/更新配置信息
  3. 降低運(yùn)維人員的維護(hù)成本
  4. 降低配置出錯(cuò)率
這個(gè)方案應(yīng)該是微服務(wù)的標(biāo)配,現(xiàn)在越來(lái)越流行開(kāi)來(lái)。

 

6. 全環(huán)境打包結(jié)合集中配置

當(dāng)然,各種配置管理策略并不是水火不容,我們可以將多種策略結(jié)合使用,如將環(huán)境打包和集中配置結(jié)合使用。

 

架構(gòu)設(shè)計(jì)--配置信息管理

 

 

這樣,我們可以將敏感信息(數(shù)據(jù)庫(kù)連接地址、用戶(hù)名、密碼等)存儲(chǔ)在 git 中,進(jìn)行統(tǒng)一管理;將應(yīng)用配置存儲(chǔ)與配置文件中,由開(kāi)發(fā)人員進(jìn)行維護(hù)。

 

7. 小結(jié)

配置信息管理是系統(tǒng)平穩(wěn)運(yùn)行不可或缺的重要組成部分,不同的管理策略,適應(yīng)于不同的場(chǎng)景,我們需要熟知各種策略的優(yōu)缺點(diǎn),根據(jù)自身的情況進(jìn)行選擇。

切記,沒(méi)有最好的方案,只有最適合的方案。

分享到:
標(biāo)簽:架構(gòu) 設(shè)計(jì)
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定