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