dubbo框架原理

(1)介紹dubbo原理仔蝌,暴露服務(wù)過程。
下圖是暴露服務(wù)流程:


image.png

首先dubbo暴露服務(wù)有兩種情況:

(1)延時(shí)暴露
(2)非延時(shí)暴露

下面說說非延時(shí)暴露:

dubbo在實(shí)例化完bean之后,在刷新容器最后一步發(fā)布ContextRefreshEvent事件的時(shí)候,通知實(shí)現(xiàn)了ApplicationListener的類執(zhí)行回調(diào)onApplicationEvent,該事件會(huì)調(diào)用ServiceConfig的export方法失球,此export就是服務(wù)暴露。總體來說dubbo的服務(wù)就在onApplicationEvent事件中發(fā)布
那么dubbo是如何在onApplicationEvent中發(fā)布服務(wù)的呢实苞?

暴露流程

(1)首先將服務(wù)封裝成invoker豺撑,換句話說invoker中封裝了服務(wù)的實(shí)現(xiàn)類。
(2)將invoker封裝成exporter并緩存起來黔牵,緩存中使用invoker的url作為key聪轿。
(3)服務(wù)端Server啟動(dòng)并監(jiān)聽窗口(當(dāng)請(qǐng)求過來時(shí),根據(jù)請(qǐng)求信息生成key猾浦,并去緩存中尋找相應(yīng)的invoker陆错,如果找到了invoker就完成了調(diào)用)。

export的步驟簡單介紹

(1)首先會(huì)檢查各種配置信息金赦,填充屬性危号。
(2)加載注冊(cè)中心
(3)根據(jù)配置的所有協(xié)議和注冊(cè)中心url分別進(jìn)行服務(wù)暴露(本地服務(wù)/遠(yuǎn)程服務(wù))
(3.1)首先要獲取invoker
(3.2)生成Exporter,并進(jìn)行緩存
此處所有協(xié)議和注冊(cè)中心的意思素邪,我的理解是:需要一個(gè)應(yīng)用層程序進(jìn)行進(jìn)程間通信,注冊(cè)中心是將生成好的Exporter推送到注冊(cè)中心猪半,即將服務(wù)提交至注冊(cè)中心

export方法中加載注冊(cè)中心的工作細(xì)節(jié)

(1)export方法會(huì)判斷是否是延遲暴露兔朦,如不是則立即執(zhí)行doExport方法。
(2)doExport方法中會(huì)執(zhí)行一系列的檢查方法磨确,然后調(diào)用doExportUrls方法沽甥。
(3)doExportUrls方法會(huì)首先調(diào)用loadRegistries獲取所有注冊(cè)中心url。

export方法中根據(jù)配置的協(xié)議進(jìn)行服務(wù)暴露的工作細(xì)節(jié)

(1)獲取所有注冊(cè)中心之后乏奥,會(huì)遍歷調(diào)用doExportUrldFor1Protocol方法摆舟,此方法根據(jù)不同的協(xié)議將服務(wù)轉(zhuǎn)換成url形式,一些參數(shù)配置參數(shù)會(huì)附在url后面邓了。
(2)根據(jù)scope的值進(jìn)行服務(wù)暴露(即暴露/遠(yuǎn)程暴露/本地暴露)恨诱。

export方法中將服務(wù)暴露為遠(yuǎn)程服務(wù)的工作細(xì)節(jié)

(1)利用動(dòng)態(tài)代理技術(shù),將服務(wù)接口生成代理骗炉。
(2)調(diào)用Protocol生成的適配類的export方法照宝,將服務(wù)接口代理交給export處理。
(3)export方法按照上述的工作流程句葵,完成對(duì)服務(wù)的暴露厕鹃。

個(gè)人理解:invoker的存在是生成代理類,這樣消費(fèi)者調(diào)用服務(wù)時(shí)候不會(huì)直接調(diào)用本地實(shí)例乍丈。而export的過程是標(biāo)準(zhǔn)化的一個(gè)過程剂碴,通過配置的協(xié)議將服務(wù)調(diào)用,服務(wù)信息標(biāo)準(zhǔn)化轻专。

sentinel進(jìn)行熔斷忆矛,限流的原理以及流程

首先搞清楚熔斷與限流的區(qū)別:
A->B->C 表示調(diào)用關(guān)系。
當(dāng)B->C的時(shí)候發(fā)生突發(fā)流量的訪問请垛,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洪碳,一起剝皮案震驚了整個(gè)濱河市递览,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞳腌,老刑警劉巖绞铃,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嫂侍,居然都是意外死亡儿捧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門挑宠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菲盾,“玉大人,你說我怎么就攤上這事各淀±良” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵碎浇,是天一觀的道長临谱。 經(jīng)常有香客問我,道長奴璃,這世上最難降的妖魔是什么悉默? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮苟穆,結(jié)果婚禮上抄课,老公的妹妹穿的比我還像新娘。我一直安慰自己雳旅,他們只是感情好跟磨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攒盈,像睡著了一般吱晒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沦童,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天仑濒,我揣著相機(jī)與錄音,去河邊找鬼偷遗。 笑死墩瞳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氏豌。 我是一名探鬼主播喉酌,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了泪电?” 一聲冷哼從身側(cè)響起般妙,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎相速,沒想到半個(gè)月后碟渺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡突诬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年苫拍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旺隙。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绒极,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔬捷,到底是詐尸還是另有隱情垄提,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布周拐,位于F島的核電站铡俐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏速妖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一聪黎、第九天 我趴在偏房一處隱蔽的房頂上張望罕容。 院中可真熱鬧,春花似錦稿饰、人聲如沸锦秒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旅择。三九已至,卻和暖如春侣姆,著一層夾襖步出監(jiān)牢的瞬間生真,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工捺宗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柱蟀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓蚜厉,卻偏偏與公主長得像长已,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351