Dubbo(一)

一、Dubbo概述

1)概述

Http其實也差不多,就是將B服務(wù)的xx接口封裝成jar包,A服務(wù)調(diào)用xx接口(看不到xx的實現(xiàn)類)的方法和如殘通過http將調(diào)用信息發(fā)送B服務(wù)硬猫,B服務(wù)執(zhí)行xx接口的方法后返回結(jié)果——看起來跟RPC差不多,底層通過Http實現(xiàn),通常封裝到HttpClient這一層

2)六大核心功能

裝飾者模式啸蜜,A服務(wù)調(diào)用B服務(wù)xx接口的業(yè)務(wù)方法時坑雅,在Dubbo中并不是直接調(diào)用,而是先調(diào)用Adapter衬横,再通過Adapter調(diào)用Wrapper裹粤,有多少Wrapper就包裝多少層,最里層的Wrapper才真正調(diào)用xx接口的業(yè)務(wù)方法蜂林。這樣可以在業(yè)務(wù)之前實現(xiàn)更多邏輯——業(yè)務(wù)遥诉、Adapter、Wrapper都是通過SPI機(jī)制使用噪叙,由于基于SPI文件的形式我們不需要動Dubbo的框架可以自己添加Adapter和Wrapper進(jìn)行增強(qiáng)

有一個Monitor模塊可以統(tǒng)計每個接口的請求量矮锈,從而可以智能分配請求能力
Dubbo不僅提供RPC,還基于zookeeper提供服務(wù)注冊管理實現(xiàn)消費者和提供者直接的解耦睁蕾,就不需要消費者自行實現(xiàn)如何調(diào)用哪個提供者的邏輯
如Protocol苞笨、Transport、Serialization在SPI中提供了默認(rèn)功能子眶,需要自定義功能只需要添加接口的實現(xiàn)
逐步放量升級將舊版切換到新版進(jìn)行升級提升用戶體驗度猫缭,需要保證返回格式一致否則前端無法適配——一般情況下更新版本都有規(guī)律且每次更新內(nèi)容不大所以都是直接斷掉舊版換上新版

3)架構(gòu)和名詞解釋

一個接口A,指定方法1為m1壹店,方法2為m2;IDL可以生成接口A不同語言的實現(xiàn)——缺點是可讀性差

SPI可以破壞雙親委派機(jī)制芝加,雙親委派機(jī)制一般指服務(wù)在找某個類的時候硅卢,一般先找App層的類加載器(對應(yīng)classpath,一般我們寫的類都屬于classpath)藏杖,App層通過findClass()方法找到直接返回将塑,找不到請求父加載器Ext層(Jre/lib/ext/*.jar),Ext層通過findClass()方法找到直接返回蝌麸,找不到再請求父加載器BootStrap層(Jre/lib/rt.jar)点寥,BootStrap層通過findClass()方法找到直接返回,找不到自己嘗試從rt.jar包中加載来吩,rt.jar找不到通知Ext層嘗試在Jre/lib/ext/*.jar中加載敢辩,?Jre/lib/ext/*.jar找不到通知App層在classpath中加載,classpath找不到再通知自定義類加載器(一般用不到)弟疆。雙親委派機(jī)制保證了核心的類不會被改變(比如自定義的String類加載不進(jìn)去戚长,即時包名也是java.lang也替換不了),缺點是加載有隔離性每一層只能加載自己路徑下的類

如下圖所示:

Comsumer本地緩存一份Provider列表怠苔,通過Registry的notify來更新列表

二同廉、搭建admin客戶端

三、Dubbo使用演示

1)通過API方式使用Dubbo

api-dubbo-consumer依賴也一樣
api-dubbo-provider暴露成功
api-dubbo-consumer訂閱成功

2)通過Spring整合Dubbo

spring-dubbo-provider依賴也一樣
spring-dubbo--provider暴露成功
spring-dubbo--consumer調(diào)用成功

3)Dubbo的相關(guān)特性

3.1)屬性配置優(yōu)先級

上圖以2.7.1版本為例,不同版本優(yōu)先級不一樣
測試版本為2.7.8
2.7.8版本中屬性重寫優(yōu)先級迫肖,xml > jvm > properties

3.2)啟動時檢查

3.3)請求超時設(shè)置

超時報錯

3.4)重試次數(shù)

3.5)多版本控制

3.6)本地存根

4)通過Springboot整合Dubbo

spingboot-dubbo-provider依賴也一樣
springboot-dubbo--provider暴露成功
springboot-dubbo--consumer訂閱成功

5)Dubbo的高可用性

5.1)注冊中心宕機(jī)

關(guān)閉zk
springboot-dubbo--provider控制臺
springboot-dubbo--consumer控制臺
請求依舊正常
再次啟動zk
springboot-dubbo--provider成功重連
springboot-dubbo--consumer成功重連

5.2)負(fù)載均衡

九次請求平均分配給所有Provider

5.3)zookeeper注冊中心

假如代碼關(guān)閉某provider節(jié)點之后在zk中依然存在該provider锅劝,證明dubbo創(chuàng)建此節(jié)點是普通節(jié)點而不是虛擬節(jié)點(虛擬節(jié)點在關(guān)閉代碼時會在zk中被刪除),需要我們在zk中手動刪除再重啟zk


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蟆湖,一起剝皮案震驚了整個濱河市故爵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帐姻,老刑警劉巖稠集,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異饥瓷,居然都是意外死亡剥纷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門呢铆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晦鞋,“玉大人,你說我怎么就攤上這事棺克∮贫猓” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵娜谊,是天一觀的道長确买。 經(jīng)常有香客問我,道長纱皆,這世上最難降的妖魔是什么湾趾? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮派草,結(jié)果婚禮上搀缠,老公的妹妹穿的比我還像新娘。我一直安慰自己近迁,他們只是感情好艺普,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鉴竭,像睡著了一般歧譬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搏存,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天缴罗,我揣著相機(jī)與錄音,去河邊找鬼祭埂。 笑死面氓,一個胖子當(dāng)著我的面吹牛兵钮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播舌界,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼掘譬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呻拌?” 一聲冷哼從身側(cè)響起葱轩,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎藐握,沒想到半個月后靴拱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡猾普,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年袜炕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片初家。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡偎窘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溜在,到底是詐尸還是另有隱情陌知,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布掖肋,位于F島的核電站仆葡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏志笼。R本人自食惡果不足惜浙芙,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望籽腕。 院中可真熱鬧,春花似錦纸俭、人聲如沸皇耗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郎楼。三九已至,卻和暖如春窒悔,著一層夾襖步出監(jiān)牢的瞬間呜袁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工简珠, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留阶界,地道東北人虹钮。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像膘融,于是被迫代替她去往敵國和親芙粱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 概念 Dubbo是一個分布式RPC中間件氧映。RPC(Remote Procedure Call) 遠(yuǎn)程過程調(diào)用協(xié)議春畔,...
    神秘人l3閱讀 565評論 0 0
  • dubbo支持外部接口,使用rest協(xié)議岛都,這樣就不用又加入spring mvc了律姨。做一些權(quán)限認(rèn)證等,添加reste...
    鐘mh閱讀 1,352評論 0 0
  • Tomcat 架構(gòu)原理解析到架構(gòu)設(shè)計借鑒 Tomcat 發(fā)展這么多年臼疫,已經(jīng)比較成熟穩(wěn)定择份。在如今『追新求快』的時代,...
    MageByte_青葉閱讀 400評論 0 2
  • 1.Tomcat核心: Http服務(wù)器+Servlet容器 組件分工: 連接器Connector:處理 Socke...
    王偵閱讀 1,526評論 0 14
  • 第一章 深入Web請求過程 B/S網(wǎng)絡(luò)架構(gòu)概述 瀏覽器發(fā)起一個URL請求的過程 CDN內(nèi)容分布網(wǎng)絡(luò) 如何發(fā)起一個請...
    我是小曼巴閱讀 391評論 0 0