Dubbo-面試

工作原理

  1. service 層:provider 和 consumer泡态,留給自己實現(xiàn)的接口
  2. config 層:配置文件
  3. proxy 層:代理層钻蹬,provider 和 comsumer dubbo 都會給生成代理,通過代理進行網(wǎng)絡(luò)通信
  4. registry 層:負(fù)責(zé)服務(wù)注冊與發(fā)現(xiàn)
  5. cluster 層:集群層掺栅,多個provider實例的路由、負(fù)載均衡等封裝成一個服務(wù)
  6. monitor 層:監(jiān)控層
  7. protocol 層: 遠(yuǎn)程調(diào)用層,封裝RPC調(diào)用法焰,負(fù)責(zé)具體的 provider 和 consumer 之間的網(wǎng)絡(luò)通信
  8. exchange 層:信息交換層
  9. transport 層:網(wǎng)絡(luò)傳輸層,抽象 mina 和 netty 為統(tǒng)一接口
  10. serialize 層:序列化

工作流程

通信協(xié)議

  1. dubbo 協(xié)議:

    • 單一長連接倔毙,NIO異步通信埃仪,基于 Hessian 序列化
    • 適用場景:傳輸數(shù)據(jù)量小(每次請求100KB以內(nèi))陕赃,但是并發(fā)量很高
  1. rmi 協(xié)議

    • java 二進制序列化卵蛉,多個短鏈接
    • 適用場景:消費者和提供者數(shù)量差不多,文件傳輸么库,較少用
  2. hessian 協(xié)議

    • hessian 序列化協(xié)議傻丝,多個短鏈接
    • 適用場景:提供者比消費者數(shù)量還多,文件傳輸诉儒,較少用
  3. http 協(xié)議

    • json 序列化
  4. webservice

    • SOAP 文本序列化

序列化協(xié)議

hessian葡缰、JAVA二進制序列化、json忱反、SOAP文本序列化多種序列化協(xié)議泛释,默認(rèn)hessian

負(fù)載均衡策略

  1. random loadbalance:默認(rèn),隨機温算,按權(quán)重隨機分配怜校,權(quán)重越大,流量越大
  2. roundrobin loadbalance:輪詢注竿,默認(rèn)情況下會均勻的將流量打到各個機器上去茄茁,可以調(diào)整權(quán)重
  3. leastactive loadbalance:自動感知,性能越差巩割、越不活躍的接收的請求越少
  4. consistanthash loadbalance:一致性HASH算法裙顽,相同參數(shù)的請求一定分發(fā)到一個 provider 上去,provider 掛掉時喂分,均勻分配剩余的流量锦庸,如果是一個類請求都到一個節(jié)點,就走一致性HASH策略

容錯策略

  1. failover cluster:默認(rèn)蒲祈,失敗自動切換重試其他節(jié)點
  2. failfast cluster:立即失敗
  3. failsafe cluster:出現(xiàn)異常時忽略掉甘萧,常用于不重要的接口萝嘁,比如記錄日志
  4. failbackc cluster:失敗了后臺自動記錄請求,然后定時重發(fā),比較適合于寫消息隊列
  5. forking cluster:并行調(diào)用多個 provider,有一個成功就立即返回
  6. broadcacst cluster:逐個調(diào)用所有 provider

動態(tài)代理策略

默認(rèn)使用 javassist 動態(tài)字節(jié)碼生成扬卷,創(chuàng)建代理類

但是可以通過 spi 擴展機制配置自己的動態(tài)搭理策略

SPI 機制

service provider interface牙言,指定接口的實現(xiàn)類,這是 JAVA 提供的一個功能

dubbo 自己實現(xiàn)了一套 spi 機制怪得,微內(nèi)核咱枉,可插拔,大量的組件

Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();

可以實現(xiàn)自己的組件徒恋,然后配置對應(yīng)的KEY

服務(wù)管理

  1. 調(diào)用鏈路自動生成
  2. 服務(wù)訪問壓力以及時長統(tǒng)計
  3. 其他的
    • 服務(wù)分層(避免循環(huán)依賴)
    • 調(diào)用鏈路失敗監(jiān)控和報警
    • 服務(wù)鑒權(quán)
    • 每個服務(wù)可用性監(jiān)控(接口調(diào)用成功率)

服務(wù)降級

失敗重試和超時重試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚕断,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子入挣,更是在濱河造成了極大的恐慌亿乳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件径筏,死亡現(xiàn)場離奇詭異葛假,居然都是意外死亡,警方通過查閱死者的電腦和手機滋恬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門聊训,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恢氯,你說我怎么就攤上這事带斑。” “怎么了酿雪?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵遏暴,是天一觀的道長侄刽。 經(jīng)常有香客問我指黎,道長,這世上最難降的妖魔是什么州丹? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任醋安,我火速辦了婚禮,結(jié)果婚禮上墓毒,老公的妹妹穿的比我還像新娘吓揪。我一直安慰自己,他們只是感情好所计,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布柠辞。 她就那樣靜靜地躺著,像睡著了一般主胧。 火紅的嫁衣襯著肌膚如雪叭首。 梳的紋絲不亂的頭發(fā)上习勤,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音焙格,去河邊找鬼图毕。 笑死,一個胖子當(dāng)著我的面吹牛眷唉,可吹牛的內(nèi)容都是我干的予颤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼冬阳,長吁一口氣:“原來是場噩夢啊……” “哼蛤虐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肝陪,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤笆焰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后见坑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚷掠,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年荞驴,在試婚紗的時候發(fā)現(xiàn)自己被綠了不皆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡熊楼,死狀恐怖霹娄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鲫骗,我是刑警寧澤犬耻,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站执泰,受9級特大地震影響枕磁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜术吝,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一计济、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧排苍,春花似錦沦寂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春毯侦,著一層夾襖步出監(jiān)牢的瞬間西壮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工叫惊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留款青,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓霍狰,卻偏偏與公主長得像抡草,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔗坯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359