成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分布式系統(tǒng)中處理參數(shù)配置的 4 種方案

chavesgu / 1376人閱讀

摘要:配置中心法目前大多數(shù)分布式配置中心都是基于來實(shí)現(xiàn)的,有自己的配置中心組件,它們都支持在線動(dòng)態(tài)更新和刷新配置。

一個(gè)系統(tǒng)中包含有各種各樣的配置信息,如一個(gè)日志文件需要配置以下幾個(gè)信息。

日志文件生成主目錄

日志文件名稱,不同的日志級(jí)別對(duì)應(yīng)不同的文件

當(dāng)前日志級(jí)別

還有其他各種業(yè)務(wù)參數(shù)、系統(tǒng)參數(shù)等,大多單一系統(tǒng)是直接把這些配置寫死在配置文件中,當(dāng)部署到測(cè)試、生產(chǎn)環(huán)境就再修改下配置文件,這樣很容易出錯(cuò),也不能靈活修改。還有就是系統(tǒng)變成分布式系統(tǒng)后,子系統(tǒng)越來越多,你要維護(hù)這些配置就變得越來越困難。

我覺得至少要能解決以下幾個(gè)問題才能算優(yōu)秀!

1)能在線靈活修改配置

2)能在線動(dòng)態(tài)刷新配置

3)能根據(jù)不同環(huán)境配置

4)能統(tǒng)一管理維護(hù)配置

那么如何靈活維護(hù)這些配置呢?我給大家總結(jié)了一下幾類方法,根據(jù)不同的應(yīng)用場(chǎng)大家參考一下。

1、數(shù)據(jù)庫法

把所有參數(shù)存儲(chǔ)到數(shù)據(jù)庫,系統(tǒng)啟動(dòng)的時(shí)候加載到內(nèi)存。

這種實(shí)現(xiàn)方式比較簡(jiǎn)單,但需要占用數(shù)據(jù)庫資源,系統(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)目多起來,配置還要經(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è)十分頭疼的問題。

// 讀取環(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 來實(shí)現(xiàn)的,Spring Cloud 有自己的配置中心組件,它們都支持在線動(dòng)態(tài)更新和刷新配置。

2)直接把配置存放在數(shù)據(jù)庫,如果系統(tǒng)并發(fā)小的或者管理類系統(tǒng)的話可以參考,對(duì)于高并發(fā)應(yīng)用不建議用數(shù)據(jù)庫做配置中心,畢竟它會(huì)帶來訪問壓力,而且實(shí)現(xiàn)動(dòng)態(tài)更新配置也比較復(fù)雜。

總結(jié)

這是我們目前應(yīng)用的 4 種配置方法,很顯然,配置中心是最佳的解決方案,也解決了以上的幾個(gè)問題,但需要依賴中間件及其高可用性,如果你有其他更好的方式,歡迎留言。

更多干貨推薦

1.史上最強(qiáng) Java 中高級(jí)面試題整理

2.史上最強(qiáng) Spring Boot & Cloud 教程整理

3.史上最強(qiáng)架構(gòu)設(shè)計(jì)分布式技術(shù)干貨整理

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),關(guān)注公眾號(hào)在后臺(tái)回復(fù) "分布式" 可獲取更多,轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/pre>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71788.html

相關(guān)文章

  • 慕課網(wǎng)_《Java消息間件》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。這個(gè)時(shí)候,可以啟動(dòng)多臺(tái)積分系統(tǒng),來同時(shí)消費(fèi)這個(gè)消息中間件里面的登錄消息,達(dá)到橫向擴(kuò)展的作用。 時(shí)間:2017年07月22日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程安排 Java...

    twohappy 評(píng)論0 收藏0
  • 布式系統(tǒng)負(fù)載均衡 | 架構(gòu)干貨

    摘要:是的默認(rèn)負(fù)載均衡策略。一致性哈希負(fù)載均衡。所以負(fù)載均衡是分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一??紤]主要是如何讓下游接收到的請(qǐng)求是均勻分布的第層客戶端層反向代理層的負(fù)載均衡。通過輪詢第層反向代理層層的負(fù)載均衡。 一、 什么是負(fù)載均衡? 什么是負(fù)載均衡? 記得第一次接觸 Nginx 是在實(shí)驗(yàn)室,那時(shí)候在服務(wù)器部署網(wǎng)站需要用 Nginx 。Nginx 是一個(gè)服務(wù)組件,用來反向代理、負(fù)載平衡...

    twohappy 評(píng)論0 收藏0
  • SpringCloud打造微服務(wù)平臺(tái)--概覽

    摘要:授權(quán)框架使第三方應(yīng)用程序來獲取對(duì)服務(wù)的有限訪問機(jī)會(huì)。無論是通過編排資源所有者和服務(wù)之間的交互批準(zhǔn)的資源所有者,或通過允許第三方應(yīng)用程序來獲取自己的訪問權(quán)限。 SpringCloud打造微服務(wù)平臺(tái)--概覽 簡(jiǎn)述 SpringCloud是什么 Spring Boot和SpringCloud是什么關(guān)系 Spring Boot是Spring的一套快速WEB開發(fā)的腳手架,可建立獨(dú)立的Sprin...

    siberiawolf 評(píng)論0 收藏0
  • 網(wǎng)易容器云平臺(tái)微服務(wù)化實(shí)踐(一)

    摘要:本文是網(wǎng)易容器云平臺(tái)的微服務(wù)化實(shí)踐系列文章的第一篇。網(wǎng)易容器云平臺(tái)的前身是網(wǎng)易應(yīng)用自動(dòng)部署平臺(tái),它能夠利用云提供的基礎(chǔ)設(shè)施,實(shí)現(xiàn)包括構(gòu)建和部署一體化在內(nèi)的整個(gè)應(yīng)用生命周期管理。目前網(wǎng)易云容器服務(wù)團(tuán)隊(duì)以的方式管理著微服務(wù),每周構(gòu)建部署次數(shù)。 此文已由作者馮常健授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。 摘要:網(wǎng)易云容器平臺(tái)期望能給實(shí)施了微服務(wù)架構(gòu)的團(tuán)隊(duì)提供完...

    zhjx922 評(píng)論0 收藏0
  • [譯]新高性能計(jì)算框架——KernelHive

    摘要:追蹤正在進(jìn)行的計(jì)算的狀態(tài)。為了知道作業(yè)的進(jìn)度,通過監(jiān)聽端口來接受二進(jìn)制文件發(fā)來的信息。子系統(tǒng)監(jiān)聽的子系統(tǒng)包括多種預(yù)編譯二進(jìn)制文件。這些二進(jìn)制文件被分配給對(duì)應(yīng)的在應(yīng)用層定義好的計(jì)算模版。 KernelHive: a new workflow-based framework for multilevel high performance computing using clusters a...

    2shou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<