柚子快報激活碼778899分享:Dubbo技術(shù)分享
柚子快報激活碼778899分享:Dubbo技術(shù)分享
《一線大廠Java面試題解析+核心總結(jié)學習筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門,即可獲取!
數(shù)據(jù)序列化層(Serialize):可復用的一些工具,擴展接口為Serialization、 ObjectInput、ObjectOutput和ThreadPool。
從上圖可以看出,Dubbo對于服務提供方和服務消費方,從框架的10層中分別提供了各自需要關(guān)心和擴展的接口,構(gòu)建整個服務生態(tài)系統(tǒng)(服務提供方和服務消費方本身就是一個以服務為中心的)。
根據(jù)官方提供的,對于上述各層之間關(guān)系的描述,如下所示:
在RPC中,Protocol是核心層,也就是只要有Protocol + Invoker + Exporter就可以完成非透明的RPC調(diào)用,然后在Invoker的主過程上Filter攔截點。 圖中的Consumer和Provider是抽象概念,只是想讓看圖者更直觀的了解哪些類分屬于客戶端與服務器端,不用Client和Server的原因是Dubbo在很多場景下都使用Provider、Consumer、Registry、Monitor劃分邏輯拓普節(jié)點,保持統(tǒng)一概念。 而Cluster是外圍概念,所以Cluster的目的是將多個Invoker偽裝成一個Invoker,這樣其它人只要關(guān)注Protocol層Invoker即可,加上Cluster或者去掉Cluster對其它層都不會造成影響,因為只有一個提供者時,是不需要Cluster的。 Proxy層封裝了所有接口的透明化代理,而在其它層都以Invoker為中心,只有到了暴露給用戶使用時,才用Proxy將Invoker轉(zhuǎn)成接口,或?qū)⒔涌趯崿F(xiàn)轉(zhuǎn)成Invoker,也就是去掉Proxy層RPC是可以Run的,只是不那么透明,不那么看起來像調(diào)本地服務一樣調(diào)遠程服務。 而Remoting實現(xiàn)是Dubbo協(xié)議的實現(xiàn),如果你選擇RMI協(xié)議,整個Remoting都不會用上,Remoting內(nèi)部再劃為Transport傳輸層和Exchange信息交換層,Transport層只負責單向消息傳輸,是對Mina、Netty、Grizzly的抽象,它也可以擴展UDP傳輸,而Exchange層是在傳輸層之上封裝了Request-Response語義。 Registry和Monitor實際上不算一層,而是一個獨立的節(jié)點,只是為了全局概覽,用層的方式畫在一起。
從上面的架構(gòu)圖中,我們可以了解到,Dubbo作為一個分布式服務框架,主要具有如下幾個核心的要點:
服務定義
服務是圍繞服務提供方和服務消費方的,服務提供方實現(xiàn)服務,而服務消費方調(diào)用服務。
服務注冊
對于服務提供方,它需要發(fā)布服務,而且由于應用系統(tǒng)的復雜性,服務的數(shù)量、類型也不斷膨脹;對于服務消費方,它最關(guān)心如何獲取到它所需要的服務,而面對復雜的應用系統(tǒng),需要管理大量的服務調(diào)用。而且,對于服務提供方和服務消費方來說,他們還有可能兼具這兩種角色,即既需要提供服務,有需要消費服務。
通過將服務統(tǒng)一管理起來,可以有效地優(yōu)化內(nèi)部應用對服務發(fā)布/使用的流程和管理。服務注冊中心可以通過特定協(xié)議來完成服務對外的統(tǒng)一。Dubbo提供的注冊中心有如下幾種類型可供選擇:
Multicast注冊中心 Zookeeper注冊中心 Redis注冊中心 Simple注冊中心
服務監(jiān)控
無論是服務提供方,還是服務消費方,他們都需要對服務調(diào)用的實際狀態(tài)進行有效的監(jiān)控,從而改進服務質(zhì)量。
遠程通信與信息交換
遠程通信需要指定通信雙方所約定的協(xié)議,在保證通信雙方理解協(xié)議語義的基礎(chǔ)上,還要保證高效、穩(wěn)定的消息傳輸。Dubbo繼承了當前主流的網(wǎng)絡通信框架,主要包括如下幾個:
Mina Netty Grizzly
服務調(diào)用
下面從Dubbo官網(wǎng)直接拿來,看一下基于RPC層,服務提供方和服務消費方之間的調(diào)用關(guān)系,如圖所示:
上圖中,藍色的表示與業(yè)務有交互,綠色的表示只對Dubbo內(nèi)部交互。上述圖所描述的調(diào)用流程如下:
服務提供方發(fā)布服務到服務注冊中心; 服務消費方從服務注冊中心訂閱服務; 服務消費方調(diào)用已經(jīng)注冊的可用服務
接著,將上面抽象的調(diào)用流程圖展開,詳細如圖所示:
注冊/注銷服務
服務的注冊與注銷,是對服務提供方角色而言,那么注冊服務與注銷服務的時序圖,如圖所示:
服務訂閱/取消
為了滿足應用系統(tǒng)的需求,服務消費方的可能需要從服務注冊中心訂閱指定的有服務提供方發(fā)布的服務,在得到通知可以使用服務時,就可以直接調(diào)用服務。反過來,如果不需要某一個服務了,可以取消該服務。下面看一下對應的時序圖,如圖所示
協(xié)議支持
Dubbo支持多種協(xié)議,如下所示:
Dubbo協(xié)議 Hessian協(xié)議 HTTP協(xié)議 RMI協(xié)議 WebService協(xié)議 Thrift協(xié)議 Memcached協(xié)議
最后
小編利用空余時間整理了一份《MySQL性能調(diào)優(yōu)手冊》,初衷也很簡單,就是希望能夠幫助到大家,減輕大家的負擔和節(jié)省時間。
關(guān)于這個,給大家看一份學習大綱(PDF)文件,每一個分支里面會有詳細的介紹。
這里都是以圖片形式展示介紹,如要下載原文件以及更多的性能調(diào)優(yōu)筆記(MySQL+Tomcat+JVM)! 《一線大廠Java面試題解析+核心總結(jié)學習筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門,即可獲?。?60203)]
這里都是以圖片形式展示介紹,如要下載原文件以及更多的性能調(diào)優(yōu)筆記(MySQL+Tomcat+JVM)! 《一線大廠Java面試題解析+核心總結(jié)學習筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門,即可獲??!
柚子快報激活碼778899分享:Dubbo技術(shù)分享
參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。