更新時(shí)間:2020-03-25 15:35:16 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2103次
工作原理
簡單的說,Dubbo是基于Java的RPC框架。Dubbo工作分為4個(gè)角色,分別是服務(wù)提供者、服務(wù)消費(fèi)者、注冊(cè)中心、和監(jiān)控中心。
按照工作階段又分為部署階段和運(yùn)行階段。
其中部署階段在圖中以藍(lán)色的線來表示,代表服務(wù)注冊(cè)、服務(wù)訂閱的過程,而運(yùn)行階段在圖中以紅色的線來表示,代表一次RPC的完整調(diào)用。
部署階段中服務(wù)提供方在啟動(dòng)時(shí)在指定的端口上暴露服務(wù),并向注冊(cè)中心匯報(bào)自己的地址。
服務(wù)調(diào)用方啟動(dòng)時(shí)向注冊(cè)中心訂閱自己感興趣的服務(wù)。
運(yùn)行階段注冊(cè)中心先將地址列表推送給服務(wù)消費(fèi)者,服務(wù)消費(fèi)者選取一個(gè)地址向?qū)Χ税l(fā)起調(diào)用。
在這個(gè)過程中,服務(wù)消費(fèi)者和服務(wù)提供者的運(yùn)行狀態(tài)會(huì)上報(bào)給監(jiān)控中心。
整體架構(gòu)
這里是Dubbo的整體架構(gòu)圖。首先這張圖看起來很復(fù)雜、信息量很大。不要被嚇到。一點(diǎn)點(diǎn)的來看。
我先介紹一下這張圖的解讀方式。這張圖從左往右看,分為兩部分,左半邊藍(lán)色背景的部分代表服務(wù)消費(fèi)者,右半邊綠色背景的部分代表服務(wù)提供者。
從上往下看又分為九層。
左邊九層按功能來劃分又被分為了三大類,分別是面向用戶的Biz層、框架核心RPC以及負(fù)責(zé)遠(yuǎn)程傳輸?shù)腞emoting,右邊按面向人群又劃分為了兩類,上面兩層是面向用戶的API,而下面七層是面向擴(kuò)展提供者的SPI。
圖中的線代表對(duì)象與對(duì)象之間不同的關(guān)系,紫色代表繼承;黑色代表依賴;藍(lán)色虛線代表服務(wù)注冊(cè)、服務(wù)訂閱的過程,也就是上面講的部署階段;紅色代表一次完整的RPC調(diào)用,也就是運(yùn)行階段。
我們順著紅色的線,來看下一次完整的RPC調(diào)用是如何進(jìn)行的。
首先從圖的左邊開始,服務(wù)消費(fèi)者從Proxy層發(fā)起一次RPC調(diào)用,Dubbo從Registry層拿到服務(wù)的地址列表,再通過Cluster層選擇其中的一個(gè)作為目標(biāo)地址,再流經(jīng)Protocol決定的執(zhí)行鏈,最后將服務(wù)信息,包括要調(diào)用的服務(wù)名、方法名、參數(shù)等序列化,再經(jīng)過應(yīng)用協(xié)議編碼,通過Transport層發(fā)送到網(wǎng)絡(luò)上。
右邊的服務(wù)提供者從網(wǎng)絡(luò)上收到數(shù)據(jù)以后,從下往上,依次通過應(yīng)用協(xié)議解碼、反序列化得到要調(diào)用的服務(wù)信息,再經(jīng)由執(zhí)行鏈,最終通過Invoker找到目標(biāo)服務(wù)的目標(biāo)方法,執(zhí)行并返回結(jié)果。
解讀完Dubbo的架構(gòu)圖,再來看看架構(gòu)圖中體現(xiàn)的設(shè)計(jì)原則。
Dubbo秉承高內(nèi)聚、低耦合的設(shè)計(jì),這一點(diǎn)體現(xiàn)在架構(gòu)圖中九層的清晰劃分上,并且也體現(xiàn)在依賴的方向上。黑色的線條的方向永遠(yuǎn)是從上指向下,沒有循環(huán)依賴和反向依賴的出現(xiàn)。
Dubbo還有一個(gè)很重要的設(shè)計(jì)哲學(xué)就是平等對(duì)待第三方的擴(kuò)展,即Dubbo內(nèi)建的功能也是通過同樣的擴(kuò)展機(jī)制提供出來的,第三方的擴(kuò)展和內(nèi)建功能可以相互取代。正是由于Dubbo將第三方擴(kuò)展當(dāng)成框架的一等公民,為未來基于這個(gè)機(jī)制建立生態(tài)帶來了可能性。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“java dubbo框架視頻教程”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743