Dubbo + Zookeeper 淺析

Dubbo + zookeeper 是現(xiàn)在比較流行的架構筷狼,也是我們行部分系統(tǒng)正在使用的架構动看,例如支撐平臺裕偿。下面就介紹一下為什么要使用這個架構和這個架構的工作流程洞慎。


dubbo框架
  • 上面這個圖是dubbo官網(wǎng)的,簡單介紹一下工作流程
    0.服務器啟動
    1.生產(chǎn)者向注冊中心注冊服務
    2.消費者向注冊中心訂閱服務
    3.注冊中心通知消費者击费,告知其對應服務器和服務
    4.消費者invoke調用生產(chǎn)者服務
    5.統(tǒng)計服務注冊消費等信息

  • dubbo有什么優(yōu)點

Dubbo 便于橫向擴展

Dubbo使用registry進行服務注冊和訂閱拢蛋,當我們新增生產(chǎn)者服務時,只需要向注冊中心注冊便可蔫巩,不同以往谆棱,需要修改消費者的配置文件才可以實現(xiàn)集群的擴展。

Dubbo 簡化了開發(fā)過程

對于開發(fā)者來說圆仔,通過dubbo的框架垃瞧,消費者和生產(chǎn)者在使用或提供服務時,只需要在配置文件里聲明要使用或提供的服務坪郭,配上注冊中心的配置个从,便可以使用和調用對應的服務,因此在消費者一側,無需關心要調用哪臺服務器的服務嗦锐,IP嫌松、URL等等信息,調用遠程接口的時候也不用像傳統(tǒng)的new一個httpclient奕污,然后輸入url這樣去調用萎羔,直接像調用本地接口一樣,提高了開發(fā)的效率

Dubbo 簡化了開發(fā)過程

對于開發(fā)者來說碳默,通過dubbo的框架贾陷,消費者和生產(chǎn)者在使用或提供服務時,只需要在配置文件里聲明要使用或提供的服務嘱根,配上注冊中心的配置髓废,便可以使用和調用對應的服務,因此在消費者一側该抒,無需關心要調用哪臺服務器的服務慌洪,IP、URL等等信息凑保,調用遠程接口的時候也不用像傳統(tǒng)的new一個httpclient蒋譬,然后輸入url這樣去調用,直接像調用本地接口一樣愉适,提高了開發(fā)的效率

Dubbo采用了RPC調度

RPC工作流程

一個RPC調用服務的工作流程:

  1. 客戶端調用(消費者調用服務)
  2. 客戶端存根打包(通過RPC協(xié)議對請求報文進行序列化和打包,這里已經(jīng)完成了注冊中心的訂閱癣漆,得到了服務的列表维咸,把對應的服務器IP和端口寫進報文頭里,從而調用對應的服務)
  3. RPC發(fā)送請求(通過client stub發(fā)送報文)
  4. RPC接收(通過server stub 接收報文)
  5. 服務器端存根解包(通過RPC協(xié)議進行解包)
  6. 調用接口(調用本地接口)
  7. 返回信息(獲得信息后向客戶端存根發(fā)送返回結果)
  8. 服務器端存根打包(server stub通過RPC協(xié)議對報文進行序列化和打包惠爽,這里不用通過注冊中心癌蓖,原路返回)
  9. RPC請求(通過server stub發(fā)送報文)
  10. RPC接收(client stub接收報文)
  11. 客戶端存根解包(RPC協(xié)議解包)
  12. 客戶端獲得調用結果(消費者獲得返回結果)

可能有人會問,這么多的工作流程婚肆,http調用不香么租副?其實各有各的優(yōu)點。HTTP調用较性,每次都會建立一次TCP連接用僧,三次握手四次分手,像平時網(wǎng)銀微信的服務器赞咙,訪問的人多了责循,就出現(xiàn)很多ESTABLISHED和TIME_WAIT狀態(tài)的連接,EST狀態(tài)的連接就不說了攀操,肯定會占用比較多的帶寬資源院仿,而TIMEWAIT狀態(tài)的也會占用一定的資源去等待握手結束。這樣對于應用性能和環(huán)境資源都不太友好。
而RPC調用通過兩邊stub進行通訊歹垫,這兩個相當于一個代理剥汤,建立一次TCP連接,每次TCP連接可調用多個接口排惨,這樣不僅提高了應用程序的性能吭敢,還減少了網(wǎng)絡資源的負擔。
RPC調用與傳統(tǒng)的HTTP調用不同有以下優(yōu)點:

  • 對于開發(fā)者若贮,接口層以下都是透明的省有,只管調用接口
  • 減輕了網(wǎng)絡的負擔
  • 提升了程序的性能

zookeeper注冊中心

從上面的分析應該可以得出,zookeeper不是dubbo必須的谴麦,只是zookeeper暴露的接口和內部機制比較適合作為dubbo的注冊中心蠢沿。
那么zookeeper作為dubbo的注冊中心做了什么呢?引用dubbo的架構圖匾效,zookeeper做了以下三個步驟:
1. register(服務注冊)
2. subscribe(訂閱)
3. notify(通知)
這三個步驟主要調用了zookeeper提供的兩種接口:
創(chuàng)建節(jié)點
zookeeper提供了兩種節(jié)點舷蟀,一種是持久節(jié)點,一種是臨時節(jié)點面哼,而dubbo注冊服務其實就是在zookeeper上面創(chuàng)建一個節(jié)點野宜,然后利用臨時節(jié)點的特性,當生產(chǎn)者服務器崩潰時魔策,不能提供服務匈子,與zookeeper的連接斷開會話結束,就會銷毀創(chuàng)建的臨時節(jié)點闯袒,也就是注銷服務虎敦。這樣消費者就不會調用崩潰的服務器的接口。這里可以試著在生產(chǎn)者的服務器上政敢,用防火墻屏蔽其應用端口的出局其徙,模擬應用程序的崩潰,這是監(jiān)視zookeeper的節(jié)點數(shù)量喷户,就會發(fā)現(xiàn)其節(jié)點的數(shù)量相比之前減少了唾那,也就是所謂的臨時節(jié)點被銷毀了。
設置監(jiān)視器
設置監(jiān)視器的接口實現(xiàn)了訂閱和通知褪尝,dubbo消費者端在zookeeper的節(jié)點上闹获,對需要訂閱的服務(也就是一個節(jié)點)設置一個監(jiān)視器

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市河哑,隨后出現(xiàn)的幾起案子昌罩,更是在濱河造成了極大的恐慌,老刑警劉巖灾馒,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茎用,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機轨功,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門旭斥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人古涧,你說我怎么就攤上這事垂券。” “怎么了羡滑?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵菇爪,是天一觀的道長。 經(jīng)常有香客問我柒昏,道長凳宙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任职祷,我火速辦了婚禮氏涩,結果婚禮上,老公的妹妹穿的比我還像新娘有梆。我一直安慰自己是尖,他們只是感情好,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布泥耀。 她就那樣靜靜地躺著饺汹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痰催。 梳的紋絲不亂的頭發(fā)上首繁,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機與錄音陨囊,去河邊找鬼。 笑死夹攒,一個胖子當著我的面吹牛蜘醋,可吹牛的內容都是我干的。 我是一名探鬼主播咏尝,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼压语,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了编检?” 一聲冷哼從身側響起胎食,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎允懂,沒想到半個月后厕怜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年粥航,在試婚紗的時候發(fā)現(xiàn)自己被綠了琅捏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡递雀,死狀恐怖柄延,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情缀程,我是刑警寧澤搜吧,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站杨凑,受9級特大地震影響滤奈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蠢甲,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一僵刮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹦牛,春花似錦搞糕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至礼殊,卻和暖如春驹吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晶伦。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工碟狞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婚陪。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓族沃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泌参。 傳聞我的和親對象是個殘疾皇子脆淹,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內容