亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                聊聊Dubbo的架構原理

                聊聊Dubbo的架構原理

                1 Dubbo核心功能

              1. Remoting:遠程通訊,提供對多種NIO框架抽象封裝,包括“同步轉異步”和“請求-響應”模式的信息交換方式。
              2. Cluster: 服務框架,提供基于接口方法的透明遠程過程調用,包括多協(xié)議支持,以及軟負載均衡,失敗容錯,地址路由,動態(tài)配置等集群支持。
              3. Registry: 服務注冊中心,基于注冊中心目錄服務,使服務消費方能動態(tài)的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。
              4. 對于以上的3個核心功能,Dubbo有涉及到哪些組件角色,來協(xié)作完成分布式治理的呢?

                2 Dubbo組件角色

                組件角色

                說明

                Provider

                暴露服務的服務提供方

                Consumer

                調用遠程服務的服務消費方

                Registry

                服務注冊與發(fā)現(xiàn)的注冊中心

                Monitor

                統(tǒng)計服務的調用次調和調用時間的監(jiān)控中心

                Container

                服務運行容器

                調用關系說明:

                服務容器Container負責啟動,加載,運行服務提供者。 服務提供者Provider在啟動時,向注冊中心注冊自己提供的服務。 服務消費者Consumer在啟動時,向注冊中心訂閱自己所需的服務。 注冊中心Registry返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者。 服務消費者Consumer,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。 服務消費者Consumer和提供者Provider,在內存中累計調用次數(shù)和調用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心Monitor。

                3 Dubbo總體架構

                上面介紹給出的都是抽象層面的組件關系,可以說是縱向的以服務模型的組件分析,其實Dubbo最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)。所以,我們橫向以分層的方式來看下Dubbo的架構,如圖所示:

                Dubbo框架設計一共劃分了10個層,而最上面的Service層是留給實際想要使用Dubbo開發(fā)分布式服務的開發(fā)者實現(xiàn)業(yè)務邏輯的接口層。圖中左邊淡藍背景的為服務消費方使用的接口,右邊淡綠色背景的為服務提供方使用的接口, 位于中軸線上的為雙方都用到的接口。

                下面,結合Dubbo官方文檔,我們分別理解一下框架分層架構中,各個層次的設計要點:

              5. 服務接口層(Service):與實際業(yè)務邏輯相關的,根據(jù)服務提供方和服務消費方的業(yè)務設計對應的接口和實現(xiàn)。
              6. 配置層(Config):對外配置接口,以ServiceConfig和ReferenceConfig為中心,可以直接new配置類,也可以通過Spring解析配置生成配置類。
              7. 服務代理層(Proxy):服務接口透明代理,生成服務的客戶端Stub和服務器端Skeleton,以ServiceProxy為中心,擴展接口為ProxyFactory。
              8. 服務注冊層(Registry):封裝服務地址的注冊與發(fā)現(xiàn),以服務URL為中心,擴展接口為RegistryFactory、Registry和RegistryService。可能沒有服務注冊中心,此時服務提供方直接暴露服務。
              9. 集群層(Cluster):封裝多個提供者的路由及負載均衡,并橋接注冊中心,以Invoker為中心,擴展接口為Cluster、Directory、Router和LoadBalance。將多個服務提供方組合為一個服務提供方,實現(xiàn)對服務消費方來透明,只需要與一個服務提供方進行交互。
              10. 監(jiān)控層(Monitor):RPC調用次數(shù)和調用時間監(jiān)控,以Statistics為中心,擴展接口為MonitorFactory、Monitor和MonitorService。
              11. 遠程調用層(Protocol):封將RPC調用,以Invocation和Result為中心,擴展接口為Protocol、Invoker和Exporter。Protocol是服務域,它是Invoker暴露和引用的主功能入口,它負責Invoker的生命周期管理。Invoker是實體域,它是Dubbo的核心模型,其它模型都向它靠擾,或轉換成它,它代表一個可執(zhí)行體,可向它發(fā)起invoke調用,它有可能是一個本地的實現(xiàn),也可能是一個遠程的實現(xiàn),也可能一個集群實現(xiàn)。
              12. 信息交換層(Exchange):封裝請求響應模式,同步轉異步,以Request和Response為中心,擴展接口為Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。
              13. 網(wǎng)絡傳輸層(Transport):抽象mina和netty為統(tǒng)一接口,以Message為中心,擴展接口為Channel、Transporter、Client、Server和Codec。
              14. 數(shù)據(jù)序列化層(Serialize):可復用的一些工具,擴展接口為Serialization、 ObjectInput、ObjectOutput和ThreadPool。
              15. 從上圖可以看出,Dubbo對于服務提供方和服務消費方,從框架的10層中分別提供了各自需要關心和擴展的接口,構建整個服務生態(tài)系統(tǒng)(服務提供方和服務消費方本身就是一個以服務為中心的)。

                根據(jù)官方提供的,對于上述各層之間關系的描述,如下所示:

                在RPC中,Protocol是核心層,也就是只要有Protocol + Invoker + Exporter就可以完成非透明的RPC調用,然后在Invoker的主過程上Filter攔截點。 圖中的Consumer和Provider是抽象概念,只是想讓看圖者更直觀的了解哪些類分屬于客戶端與服務器端,不用Client和Server的原因是Dubbo在很多場景下都使用Provider、Consumer、Registry、Monitor劃分邏輯拓普節(jié)點,保持統(tǒng)一概念。 而Cluster是外圍概念,所以Cluster的目的是將多個Invoker偽裝成一個Invoker,這樣其它人只要關注Protocol層Invoker即可,加上Cluster或者去掉Cluster對其它層都不會造成影響,因為只有一個提供者時,是不需要Cluster的。 Proxy層封裝了所有接口的透明化代理,而在其它層都以Invoker為中心,只有到了暴露給用戶使用時,才用Proxy將Invoker轉成接口,或將接口實現(xiàn)轉成Invoker,也就是去掉Proxy層RPC是可以Run的,只是不那么透明,不那么看起來像調本地服務一樣調遠程服務。 而Remoting實現(xiàn)是Dubbo協(xié)議的實現(xiàn),如果你選擇RMI協(xié)議,整個Remoting都不會用上,Remoting內部再劃為Transport傳輸層和Exchange信息交換層,Transport層只負責單向消息傳輸,是對Mina、Netty、Grizzly的抽象,它也可以擴展UDP傳輸,而Exchange層是在傳輸層之上封裝了Request-Response語義。 Registry和Monitor實際上不算一層,而是一個獨立的節(jié)點,只是為了全局概覽,用層的方式畫在一起。

                4 服務調用流程

                5 注冊/注銷服務

                服務的注冊與注銷,是對服務提供方角色而言,那么注冊服務與注銷服務的時序圖,如圖所示:

                6 訂閱/取消服務

                為了滿足應用系統(tǒng)的需求,服務消費方的可能需要從服務注冊中心訂閱指定的有服務提供方發(fā)布的服務,在得到通知可以使用服務時,就可以直接調用服務。反過來,如果不需要某一個服務了,可以取消該服務。下面看一下對應的時序圖,如圖所示:

                作者:猿碼架構

                “做程序員,圈子和學習最重要”因為有有了圈子可以讓你少走彎路,擴寬人脈,擴展思路,學習他人的一些經驗及學習方法!同時在這分享一下是一直以來整理的Java后端進階筆記文檔和學習資料免費分享給大家!需要資料的朋友私信我扣【1】

                鄭重聲明:本文內容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月23日 06:13
                下一篇 2022年6月23日 06:13

                相關推薦

                • 30個無加盟費的項目(茶顏悅色奶茶店加盟費多少)

                  茶顏悅色又爆了,8月18日,茶顏悅色南京門店正式開業(yè),開張不到半小時,門店就人滿為患,消費者的購買熱情十分高漲,而由于人流量過大造成擁堵,茶顏悅色也不得不暫停營業(yè)。 當然,這里面排…

                  2022年11月27日
                • 短視頻策劃內容的3個要點(短視頻策劃內容怎么做)

                  短視頻在制作時,內容框架非常重要。如果直奔主題,然后結束,聚卓告訴你,這樣的短視頻已經過時了。現(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

                  2022年11月27日
                • 拍錯了拒收快遞運費誰出(淘寶退貨運費誰出)

                  很多人在逛淘寶店的時候覺得寶貝圖片看著不錯就買回來,結果收貨后發(fā)現(xiàn)可能不太合適就想退貨了。那么,淘寶退貨的快遞費用應該由誰來出呢?產生的快遞費用應該找誰來負責呢? 我們知道,根據(jù)《…

                  2022年11月27日
                • 沈陽茂業(yè)中心

                  由深圳贏商網(wǎng)茂業(yè)集團與上海建工集團聯(lián)袂打造的沈陽金廊第一高樓沈陽茂業(yè)中心于2011年11月8日順利實現(xiàn)主塔樓結構封頂至此,歷經四年,沈陽茂業(yè)中心以31095m的高度雄踞東北超高層建…

                  2022年11月25日
                • 成都健康碼打不開顯示接口請求未知異常怎么辦(成都健康碼打不開顯示接口請求未知異常)

                  成都這幾天的疫情也是備受關注,疫情期間各地出行都是需要查看健康碼的,不過今天卻有成都的小伙伴反饋健康碼無法打開的情況。成都健康碼打不開顯示接口請求未知異常怎么辦?由于健康碼無法打開…

                  2022年11月24日
                • 銳龍97900x參數(shù)規(guī)格跑分評測 銳龍97900x屬于什么檔次

                  銳龍9 7900X是銳龍7000系列處理器中性能頂尖的型號之一,它采用了這一代標配的zen4架構和5nm制程工藝,那么它具體的參數(shù)跑分如何,在電腦上世紀發(fā)揮怎么樣呢,下面就來看看銳…

                  2022年11月24日
                • 廣州花都嶺南批發(fā)地女裝在哪拿貨好(廣州花都嶺南批發(fā)地女裝)

                  廣州的服裝批發(fā)市場人氣一直也都挺高的,不過很多商家第一次來廣州進貨,對于一些女裝貨源批發(fā)還不是很了解。廣州花都嶺南批發(fā)地女裝在哪拿貨好?現(xiàn)在廣州服裝貨源批發(fā)哪里最便宜呢?今天小編整…

                  2022年11月23日
                • 神舟戰(zhàn)神S7-DA5NS電腦預售 到手價僅需5399元

                  神舟戰(zhàn)神S7-DA5NS正在京東商城預售搶購,預售到手價僅需5399元。其搭載了全新12代i5-12450H處理器,擁有2.0GHz八核十二線程效能,RTX3050 4G GDDR…

                  2022年11月23日
                • 拼多多免費領商品有什么規(guī)則(拼多多免費領商品金幣后面是什么)

                  拼多多免費領商品活動相信不少小伙伴都參加過,吸引力還是很大的,只要砍價成功就可以免費領到商品,一些小伙伴第一次參加不知道拼多多免費領商品有什么規(guī)則?下面小編為大家?guī)砥炊喽嗝赓M領商…

                  2022年11月21日
                • 什么是電商打假淘寶電商是如何打假的

                  關鍵詞:淘寶打假 適用行業(yè):適用所有行業(yè) 適用賣家規(guī)模:淘寶店、天貓店 隨著人們法治意識的不斷增強以及互聯(lián)網(wǎng)的迅猛發(fā)展,由互聯(lián)網(wǎng)引起的一些糾紛日漸增多,其中尤為明顯的莫過于網(wǎng)絡購物…

                  2022年11月19日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息