dubbo面試題、基本原理谎碍、核心配置

dubbo作為當(dāng)前國內(nèi)熱門的RPC框架鳞滨,其基本原理、配置調(diào)優(yōu)等是面試中會經(jīng)常問到的蟆淀,了解這些或者知道這些配置項的存在對工作也會事半功倍拯啦,遇到類似的問題可以不再去問那個廣告滿天飛的某度了。

1.Dubbo簡介

Dubbo |?d?b??|是一個由阿里巴巴開源的熔任、分布式的RPC(Remote Procedure Call Protocol-遠(yuǎn)程過程調(diào)用)和微服務(wù)框架褒链,現(xiàn)為Apache頂級項目。

Dubbo提供了三個關(guān)鍵功能:基于接口的遠(yuǎn)程調(diào)用疑苔,容錯與負(fù)載均衡甫匹,服務(wù)自動注冊與發(fā)現(xiàn)。

Dubbo使得調(diào)用遠(yuǎn)程服務(wù)就像調(diào)用本地java服務(wù)一樣簡單惦费。

下圖為Dubbo的結(jié)構(gòu)圖:

關(guān)于Dubbo的使用可以參考官方文檔http://dubbo.apache.org 兵迅,本文不作贅述。

2.Dubbo服務(wù)暴露與消費(fèi)過程

先來看下面問題:

1) Dubbo服務(wù)提供者發(fā)布服務(wù)的流程

2) Dubbo服務(wù)消費(fèi)者消費(fèi)服務(wù)的流程

3) 什么是本地暴露和遠(yuǎn)程暴露,他們的區(qū)別

Dubbo服務(wù)提供者發(fā)布服務(wù)過程:

先來看dubbo的啟動日志:

圖中從上到下框起來的日志分別是:

1) 暴露服務(wù)到本地

2) 暴露服務(wù)到遠(yuǎn)程

3) 啟動netty服務(wù)

4) 連接zookeeper

5) 注冊服務(wù)到zookeeper

6) 監(jiān)聽zookeeper中消費(fèi)服務(wù)

關(guān)于這個過程的實(shí)現(xiàn)細(xì)節(jié)可以參考Dubbo官方文檔->實(shí)現(xiàn)細(xì)節(jié)->遠(yuǎn)程調(diào)用細(xì)節(jié)->服務(wù)提供者暴露一個服務(wù)的詳細(xì)過程趁餐。截圖如下:

Dubbo服務(wù)消費(fèi)者消費(fèi)服務(wù)過程:

關(guān)于這個過程的實(shí)現(xiàn)細(xì)節(jié)可以參考Dubbo官方文檔->實(shí)現(xiàn)細(xì)節(jié)->遠(yuǎn)程調(diào)用細(xì)節(jié)->服務(wù)消費(fèi)者消費(fèi)一個服務(wù)的詳細(xì)過程喷兼。截圖如下:

下面來看本地暴露于遠(yuǎn)程暴露的區(qū)別:

本地暴露是暴露在本機(jī)JVM中,調(diào)用本地服務(wù)不需要網(wǎng)絡(luò)通信.

遠(yuǎn)程暴露是將ip,端口等信息暴露給遠(yuǎn)程客戶端,調(diào)用遠(yuǎn)程服務(wù)時需要網(wǎng)絡(luò)通信.

3.Dubbo相關(guān)協(xié)議

Dubbo 允許配置多協(xié)議,在不同服務(wù)上支持不同協(xié)議或者同一服務(wù)上同時支持多種協(xié)議后雷。

不同服務(wù)在性能上適用不同協(xié)議進(jìn)行傳輸季惯,比如大數(shù)據(jù)用短連接協(xié)議吠各,小數(shù)據(jù)大并發(fā)用長連接協(xié)議。

Dubbo支持的協(xié)議主要有:

dubbo:

Dubbo 缺省協(xié)議是dubbo協(xié)議勉抓,采用單一長連接和 NIO 異步通訊贾漏,適合于小數(shù)據(jù)量大并發(fā)的服務(wù)調(diào)用,以及服務(wù)消費(fèi)者機(jī)器數(shù)遠(yuǎn)大于服務(wù)提供者機(jī)器數(shù)的情況藕筋。

反之纵散,Dubbo 缺省協(xié)議不適合傳送大數(shù)據(jù)量的服務(wù),比如傳文件隐圾,傳視頻等伍掀,除非請求量很低。rmi:

RMI協(xié)議采用阻塞式(同步)短連接和 JDK 標(biāo)準(zhǔn)序列化方式暇藏。適用范圍:傳入傳出參數(shù)數(shù)據(jù)包大小混合蜜笤,消費(fèi)者與提供者個數(shù)差不多,可傳文件盐碱。

hessian:

Hessian底層采用Http通訊(同步)把兔,采用Servlet暴露服務(wù)。適用于傳入傳出參數(shù)數(shù)據(jù)包較大瓮顽,提供者比消費(fèi)者個數(shù)多县好,提供者壓力較大,可傳文件暖混。

dubbo還支持的其他協(xié)議有:http, webservice, thrift, memcached, redis

4.Dubbo相關(guān)配置

先看下面問題:

Dubbo主要的配置項有哪些缕贡,作用是什么?

如果Dubbo的服務(wù)端未啟動儒恋,消費(fèi)端能起來嗎善绎?

Dubbo主要配置項:

配置應(yīng)用信息:

<dubbo:application name="appName-provider" />

配置注冊中心相關(guān)信息:

<dubbo:registryid="zk" protocol="zookeeper" address="127.0.0.1:2181" />

配置服務(wù)協(xié)議:

<dubbo:protocol name="dubbo" port="20880" threadpool="cached" threads="80" />

配置所有暴露服務(wù)缺省值:

<dubbo:provider registry="zk" protocol="dubbo" retries="0" version="1.0.0" timeout="3000" threadpool="cached" threads="4"/>

配置暴露服務(wù):

<dubbo:service interface="com.orgname.app.serviceX" ref="serviceX" />

配置所有引用服務(wù)缺省值:

<dubbo:consumer check="false" timeout="1000" version="1.0" retries="0" async="false" />

配置引用服務(wù):

備注:

a. 其中reference的check默認(rèn)=true,啟動時會檢查引用的服務(wù)是否已存在诫尽,不存在時報錯

b. 的配置是所有的缺省配置, 的配置會覆蓋的配置禀酱。同理是所有<dubbo:service>的缺省配置。

注解配置:

com.alibaba.dubbo.config.annotation.Service 配置暴露服務(wù)

com.alibaba.dubbo.config.annotation.Reference配置引用服務(wù)

好了牧嫉,如果覺得有收獲記得關(guān)注哦剂跟。

歡迎工作一到五年的Java工程師朋友們加入Java程序員開發(fā): 854393687

群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)酣藻、高性能及分布式曹洽、Jvm性能調(diào)優(yōu)、Spring源碼辽剧,MyBatis送淆,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時間來學(xué)習(xí)提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰怕轿!趁年輕偷崩,使勁拼辟拷,給未來的自己一個交代!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阐斜,一起剝皮案震驚了整個濱河市衫冻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谒出,老刑警劉巖隅俘,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笤喳,居然都是意外死亡为居,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進(jìn)店門莉测,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜骤,“玉大人唧喉,你說我怎么就攤上這事捣卤。” “怎么了八孝?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵董朝,是天一觀的道長。 經(jīng)常有香客問我干跛,道長子姜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任楼入,我火速辦了婚禮哥捕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘉熊。我一直安慰自己遥赚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布阐肤。 她就那樣靜靜地躺著凫佛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪孕惜。 梳的紋絲不亂的頭發(fā)上愧薛,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機(jī)與錄音衫画,去河邊找鬼毫炉。 笑死,一個胖子當(dāng)著我的面吹牛削罩,可吹牛的內(nèi)容都是我干的瞄勾。 我是一名探鬼主播遵馆,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼丰榴!你這毒婦竟也來了货邓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤四濒,失蹤者是張志新(化名)和其女友劉穎换况,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盗蟆,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戈二,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喳资。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片觉吭。...
    茶點(diǎn)故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖仆邓,靈堂內(nèi)的尸體忽然破棺而出鲜滩,到底是詐尸還是另有隱情,我是刑警寧澤节值,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布徙硅,位于F島的核電站,受9級特大地震影響搞疗,放射性物質(zhì)發(fā)生泄漏嗓蘑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一匿乃、第九天 我趴在偏房一處隱蔽的房頂上張望桩皿。 院中可真熱鬧,春花似錦幢炸、人聲如沸泄隔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梅尤。三九已至,卻和暖如春岩调,著一層夾襖步出監(jiān)牢的瞬間巷燥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工号枕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缰揪,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像钝腺,于是被迫代替她去往敵國和親抛姑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評論 2 361

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

  • dubbo.xsd 文件說明 當(dāng)我們要使用Dubbo進(jìn)行 配置時艳狐,需要像下面那樣引入dubbo.xsd這個文件. ...
    Mis_Gtw閱讀 1,104評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理定硝,服務(wù)發(fā)現(xiàn),斷路器毫目,智...
    卡卡羅2017閱讀 134,720評論 18 139
  • 1蔬啡、準(zhǔn)備 在分析探索Dubbo架構(gòu)原理之前,我們需要準(zhǔn)備一下環(huán)境镀虐,用于后面我們來分析dubbo的架構(gòu)箱蟆。 1.1 Z...
    墨淵丶閱讀 2,606評論 1 20
  • 銘感恩師 王浴海 題記:2003年教師節(jié),《黑龍江教育》綜合版發(fā)表拙作《恩師范中天》刮便,配發(fā)范先生...
    王浴海閱讀 266評論 0 4
  • Rocchio分類方法 步驟:先把屬于一個類別的樣本文檔轉(zhuǎn)換成文檔向量(tf-idf)。求屬于一個類別的樣本文檔的...
    Eylen閱讀 1,513評論 0 0