新聞中心
本篇內(nèi)容介紹了“java分布式系統(tǒng)中處理參數(shù)配置的方案有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了萬(wàn)源免費(fèi)建站歡迎大家使用!
一個(gè)系統(tǒng)中包含有各種各樣的配置信息,如一個(gè)日志文件需要配置以下幾個(gè)信息。
日志文件生成主目錄
日志文件名稱,不同的日志級(jí)別對(duì)應(yīng)不同的文件
當(dāng)前日志級(jí)別
還有其他各種業(yè)務(wù)參數(shù)、系統(tǒng)參數(shù)等,大多單一系統(tǒng)是直接把這些配置寫(xiě)死在配置文件中,當(dāng)部署到測(cè)試、生產(chǎn)環(huán)境就再修改下配置文件,這樣很容易出錯(cuò),也不能靈活修改。還有就是系統(tǒng)變成分布式系統(tǒng)后,子系統(tǒng)越來(lái)越多,你要維護(hù)這些配置就變得越來(lái)越困難。
我覺(jué)得至少要能解決以下幾個(gè)問(wèn)題才能算優(yōu)秀!
1)能在線靈活修改配置
2)能在線動(dòng)態(tài)刷新配置
3)能根據(jù)不同環(huán)境配置
4)能統(tǒng)一管理維護(hù)配置
1、數(shù)據(jù)庫(kù)法
把所有參數(shù)存儲(chǔ)到數(shù)據(jù)庫(kù),系統(tǒng)啟動(dòng)的時(shí)候加載到內(nèi)存。
這種實(shí)現(xiàn)方式比較簡(jiǎn)單,但需要占用數(shù)據(jù)庫(kù)資源,系統(tǒng)簡(jiǎn)單壓力較小時(shí)可以選用此種方式。
2、打包處理法
利用 Maven 的 maven-resources-plugin
插件,然后根據(jù)不同的環(huán)境(Profile)提供不同環(huán)境的配置文件,這樣,不同環(huán)境的配置信息在打包階段就決定好了。
這樣只能解決了不同操作系統(tǒng)上面的配置,不能靈活動(dòng)態(tài)修改,每次更新只能重新打包或者在線修改配置文件,而且信息也難于同步,如果項(xiàng)目少還好,項(xiàng)目多起來(lái),配置還要經(jīng)常變動(dòng),這樣變得異常煩瑣。
3、環(huán)境變量法
可以把屬性值設(shè)置到環(huán)境變量中,然后讀取后設(shè)置到 Java 系統(tǒng)屬性中。這種可以實(shí)現(xiàn)區(qū)分不同環(huán)境的目的,但仍然不能動(dòng)態(tài)更新配置,而且配置和維護(hù)環(huán)境變量相當(dāng)麻煩,并且在分布式系統(tǒng)中更是個(gè)十分頭疼的問(wèn)題。
// 讀取環(huán)境變量
java.lang.System#getenv(java.lang.String)
// 設(shè)置系統(tǒng)屬性
java.lang.System#setProperty
這種方法,一些全局的系統(tǒng)配置,如日志、緩存、臨時(shí)目錄等可以參考,主流日志系統(tǒng)都支持從 system properties 中讀取配置。其他一些配置,不建議存儲(chǔ)在環(huán)境變量中。
4、配置中心法
1)目前大多數(shù)分布式配置中心都是基于 Zookeeper 來(lái)實(shí)現(xiàn)的,Spring Cloud 有自己的配置中心組件,它們都支持在線動(dòng)態(tài)更新和刷新配置。
2)直接把配置存放在數(shù)據(jù)庫(kù),如果系統(tǒng)并發(fā)小的或者管理類(lèi)系統(tǒng)的話可以參考,對(duì)于高并發(fā)應(yīng)用不建議用數(shù)據(jù)庫(kù)做配置中心,畢竟它會(huì)帶來(lái)訪問(wèn)壓力,而且實(shí)現(xiàn)動(dòng)態(tài)更新配置也比較復(fù)雜。
“java分布式系統(tǒng)中處理參數(shù)配置的方案有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
分享名稱:java分布式系統(tǒng)中處理參數(shù)配置的方案有哪些
分享地址:http://fisionsoft.com.cn/article/pghesg.html