400-650-7353

精品課程

dubbo原理和機(jī)制 dubbo原理和機(jī)制是什么?

發(fā)布: IT培訓(xùn) 發(fā)布時(shí)間:2023-04-28 16:39:30

推薦答案
品牌型號(hào):聯(lián)想小新Pro13/系統(tǒng)版本:windows10

Dubbo是一個(gè)基于Java的高性能、輕量級(jí)的開(kāi)源RPC框架。它采用了多種技術(shù),如NIO、線程池、注解等,從而使得開(kāi)發(fā)人員能夠以快速、簡(jiǎn)單的方式開(kāi)發(fā)出高性能、可擴(kuò)展的分布式應(yīng)用。Dubbo的原理和機(jī)制主要包括服務(wù)注冊(cè)與發(fā)現(xiàn)機(jī)制、遠(yuǎn)程通訊協(xié)議、負(fù)載均衡、 集群容錯(cuò)(Failover):

1. 服務(wù)注冊(cè)與發(fā)現(xiàn)機(jī)制

Dubbo通過(guò)結(jié)合Zookeeper實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)現(xiàn)。服務(wù)提供者將自己提供的服務(wù)注冊(cè)到Zookeeper上的相應(yīng)目錄,并保持心跳機(jī)制,保證服務(wù)在Zookeeper上一直存在。服務(wù)消費(fèi)者通過(guò)Zookeeper訂閱相應(yīng)的服務(wù),獲得提供者的地址,然后通過(guò)遠(yuǎn)程調(diào)用實(shí)現(xiàn)服務(wù)調(diào)用。服務(wù)發(fā)現(xiàn)細(xì)節(jié)對(duì)使用者透明,無(wú)需開(kāi)發(fā)者自己實(shí)現(xiàn)。

2. 遠(yuǎn)程通訊協(xié)議

Dubbo支持多種遠(yuǎn)程通訊協(xié)議,包括Dubbo協(xié)議、HTTP協(xié)議、Hessian協(xié)議等。Dubbo自實(shí)現(xiàn)的Dubbo協(xié)議性能優(yōu)異,適合在高負(fù)載情況下使用,HTTP協(xié)議簡(jiǎn)單靈活,適合在網(wǎng)關(guān)使用,Hessian協(xié)議則具有良好跨語(yǔ)言特性。

3. 負(fù)載均衡

Dubbo提供多種負(fù)載均衡算法,包括Random LoadBalance、RoundRobin LoadBalance、LeastActive LoadBalance等。其中Random LoadBalance是隨機(jī)負(fù)載均衡算法,最為簡(jiǎn)單但不保證均衡;RoundRobin LoadBalance是輪詢負(fù)載均衡算法,依次輪詢調(diào)用提供者;LeastActive LoadBalance則是按照服務(wù)的響應(yīng)速度負(fù)載均衡算法,內(nèi)置動(dòng)態(tài)負(fù)載均衡算法實(shí)現(xiàn)可自適應(yīng)調(diào)節(jié)。

4. 集群容錯(cuò)(Failover)

Dubbo提供多種集群容錯(cuò)機(jī)制,包括Failover、Failfast、Failback等。Failover機(jī)制是Dubbo的默認(rèn)機(jī)制,在集群調(diào)用失敗時(shí)會(huì)自動(dòng)切換到其他的服務(wù)提供者,從而實(shí)現(xiàn)服務(wù)的高可用性。Failfast機(jī)制則是一種快速失敗機(jī)制,只會(huì)嘗試一次調(diào)用,如果失敗則立即拋出異常。Failback機(jī)制則是一種異步返回機(jī)制,當(dāng)集群調(diào)用失敗時(shí),Dubbo會(huì)在后臺(tái)記錄失敗請(qǐng)求,并定時(shí)重?fù)堋?/p>

其它答案
冰闊落 2020-06-22 18:56:36

Dubbo的工作原理和機(jī)制如下:

1. 服務(wù)提供者將提供的服務(wù)通過(guò)注冊(cè)中心暴露出去。

2. 服務(wù)消費(fèi)者從注冊(cè)中心訂閱服務(wù)列表,獲得提供者列表。

3. 消費(fèi)者通過(guò)負(fù)載均衡算法選擇其中一臺(tái)提供者,發(fā)起遠(yuǎn)程調(diào)用請(qǐng)求。

4. 遠(yuǎn)程調(diào)用請(qǐng)求經(jīng)過(guò)Dubbo的協(xié)議層封裝為具體的協(xié)議數(shù)據(jù)包,在網(wǎng)絡(luò)層以TCP或UDP協(xié)議進(jìn)行傳輸。

5. 服務(wù)提供者接收數(shù)據(jù)包并解包,將請(qǐng)求分發(fā)到具體的服務(wù)實(shí)現(xiàn)中。

6. 服務(wù)實(shí)現(xiàn)完成后返回結(jié)果給提供者,提供者封裝響應(yīng)數(shù)據(jù)包,并發(fā)回給消費(fèi)者。

7. 消費(fèi)者接收到協(xié)議數(shù)據(jù)包,進(jìn)行解包,獲取具體的服務(wù)調(diào)用結(jié)果。


中公旗下IT培訓(xùn)品牌

  • 中公教育品牌

     中公教育是一家中國(guó)領(lǐng)先的全品類職業(yè)教育機(jī)構(gòu),提供超過(guò)100個(gè)品類的綜合職業(yè)就業(yè)培訓(xùn)服務(wù)。公司在全國(guó)超過(guò)1000個(gè)直營(yíng)網(wǎng)點(diǎn)展開(kāi)經(jīng)營(yíng),深度覆蓋300多個(gè)地級(jí)市,并正在快速向數(shù)千個(gè)縣城和高校擴(kuò)張。

  • 完善就業(yè)體系

    通過(guò)階段性授課機(jī)制,和每階段的定期考核,先讓學(xué)員能夠?qū)W會(huì)所學(xué)內(nèi)容,才能找打合適工作。最后一個(gè)階段為就業(yè)課程,從技術(shù)和面試兩個(gè)方面加深就業(yè)能力,并且還有不定期的雙選會(huì)供大家選擇。

  • 全程面授+實(shí)戰(zhàn)技術(shù)

    線下課程全程是師資面對(duì)面教學(xué),不會(huì)存在上課只對(duì)著大屏幕上課的情況,有問(wèn)題都可以在課上得到解答。并且優(yōu)就業(yè)通過(guò)自主研發(fā)大綱和學(xué)習(xí)路線,并且定期更新課程所學(xué)技術(shù),讓大家所學(xué)技術(shù)不落伍。

中公優(yōu)就業(yè)專業(yè)職業(yè)規(guī)劃老師

為您詳細(xì)答疑解惑,更能領(lǐng)取免費(fèi)課程

相關(guān)問(wèn)題

更多課程

專業(yè)課程老師將第一時(shí)間為您解答

立即答疑
修改
優(yōu)就業(yè):ujiuye

關(guān)注中公優(yōu)就業(yè)官方微信

  • 關(guān)注微信回復(fù)關(guān)鍵詞“大禮包”,領(lǐng)80G學(xué)習(xí)資料