【架構(gòu)師系列】QConfig配置中心系列之架構(gòu)設(shè)計(jì)(一)
聲明
原創(chuàng)文章,轉(zhuǎn)載請標(biāo)注。http://www.rzrgm.cn/boycelee/p/17993697
《碼頭工人的一千零一夜》是一位專注于技術(shù)干貨分享的博主,追隨博主的文章,你將深入了解業(yè)界最新的技術(shù)趨勢,以及在Java開發(fā)和安全領(lǐng)域的實(shí)用經(jīng)驗(yàn)分享。無論你是開發(fā)人員還是對逆向工程感興趣的愛好者,都能在《碼頭工人的一千零一夜》找到有價(jià)值的知識(shí)和見解。
配置中心系列文章
《【架構(gòu)師視角系列】風(fēng)控場景下的配置中心設(shè)計(jì)思考》 http://www.rzrgm.cn/boycelee/p/18355942
《【架構(gòu)師視角系列】Apollo配置中心之架構(gòu)設(shè)計(jì)(一)》http://www.rzrgm.cn/boycelee/p/17967590
《【架構(gòu)師視角系列】Apollo配置中心之Client端(二)》http://www.rzrgm.cn/boycelee/p/17978027
《【架構(gòu)師視角系列】Apollo配置中心之Server端(ConfigSevice)(三)》http://www.rzrgm.cn/boycelee/p/18005318
《【架構(gòu)師視角系列】QConfig配置中心系列之架構(gòu)設(shè)計(jì)(一)》http://www.rzrgm.cn/boycelee/p/18013653
《【架構(gòu)師視角系列】QConfig配置中心系列之Client端(二)》http://www.rzrgm.cn/boycelee/p/18033286
一、架構(gòu)
基礎(chǔ)模型

架構(gòu)圖

架構(gòu)分層
架構(gòu)分層可以分為四層,分別是客戶端層、網(wǎng)絡(luò)層、服務(wù)層以及數(shù)據(jù)層,其中客戶端層包括Client模塊和Admin模塊,網(wǎng)絡(luò)層包括Server模塊中的EntryPoint部分和NginxLB以及Eureka,服務(wù)層僅包括Server模塊。
運(yùn)行規(guī)則
(1)Server將自己注冊到注冊中心Eureka中,
(2)當(dāng)三方應(yīng)用拉取配置時(shí),Client端通過訪問域名的方式,請求經(jīng)過NginxLB訪問到EntryPoint并從Eureka中獲取到已注冊的Server列表及其對應(yīng)IP、端口信息,這時(shí)Client端就可以通過ip+port的形式直接訪問到已注冊的某個(gè)Server實(shí)例,獲取到對應(yīng)配置信息。
(3)當(dāng)管理人員操作配置時(shí),可以通過獨(dú)立部署的Admin模塊(管理平臺(tái))直接訪問數(shù)據(jù)庫,對配置數(shù)據(jù)進(jìn)行增刪查改操作。
(4)當(dāng)管理人員發(fā)布配置時(shí),Client端通過訪問域名的方式,請求經(jīng)過NginxLB訪問到EntryPoint并從Eureka中獲取到已注冊的Server列表及其對應(yīng)IP、端口信息,這時(shí)Admin端就可以通過ip+port的形式直接訪問到所有已注冊的Server實(shí)例,獲取到對應(yīng)配置信息。
模塊劃分
相對于Apollo的分層,Qconfig的分層相對更簡單一些,大致分為三個(gè)模塊分別是Admin模塊、Client模塊、Server模塊。
Admin模塊
提供web界面用于配置管理。但與Apollo配置中心不同的地方在于Qconfig的模塊劃分并沒有Apollo這么明確,所有與配置操作相關(guān)的邏輯都在Admin模塊中。
其中包括:
- 應(yīng)用創(chuàng)建、查看、修改、發(fā)布以及回滾等功能
- 提供修改、發(fā)布配置等接口。
- 配置變更時(shí)通知Server
Client模塊
提供實(shí)時(shí)配置獲取與更新。其與Apollo中的模塊職責(zé)是一樣的。
其中包括:
- 客戶端負(fù)責(zé)從Config Service獲取應(yīng)用的配置信息;
- 監(jiān)聽配置變化。當(dāng)配置發(fā)生更新時(shí),Config Service會(huì)通知Client,并出發(fā)其進(jìn)行配置刷新;
- 通過ip + port的方式遠(yuǎn)程調(diào)用Config Service,以獲取配置數(shù)據(jù)。
Server模塊
服務(wù)于Client端,為客戶端提供獲取配置的接口。
其中包括:
- 基于長輪詢,提供配置更新接口;
- 提供配置獲取接口。
二、總結(jié)
(1)Apollo和QConfig都是攜程集團(tuán)的配置中心項(xiàng)目,Apollo主要在攜程內(nèi)部使用,而Qconfig主要去哪兒內(nèi)部使用;
(2)從開源社區(qū)維護(hù)角度上,相對而言Apollo的開源工作要做得好很多;
(3)從架構(gòu)設(shè)計(jì)和代碼整潔這兩個(gè)維度上,個(gè)人覺得QConfig要做得更優(yōu)秀一些。
三、最后
《碼頭工人的一千零一夜》是一位專注于技術(shù)干貨分享的博主,追隨博主的文章,你將深入了解業(yè)界最新的技術(shù)趨勢,以及在Java開發(fā)和安全領(lǐng)域的實(shí)用經(jīng)驗(yàn)分享。無論你是開發(fā)人員還是對逆向工程感興趣的愛好者,都能在《碼頭工人的一千零一夜》找到有價(jià)值的知識(shí)和見解。
懂得不多,做得太少。歡迎批評(píng)、指正。

浙公網(wǎng)安備 33010602011771號(hào)