Spring DUBBO入門

大家好烦周,我是IT修真院鄭州分院第6期的學(xué)員萍启,一枚正直純潔善良的JAVA程序員今天給大家分享一下秋柄,Spring DUBBO的入門


1.背景介紹

什么是Dubbo?

Dubbo是Alibaba開源的分布式服務(wù)框架益涧,它最大的特點(diǎn)是按照分層的方式來架構(gòu)锹杈,

使用這種方式可以使各個(gè)層之間解耦合(或者最大限度地松耦合)两芳。

從服務(wù)模型的角度來看摔寨,Dubbo采用的是一種非常簡單的模型,要么是提供方提供服務(wù)怖辆,

要么是消費(fèi)方消費(fèi)服務(wù)是复,所以基于這一點(diǎn)可以抽象出服務(wù)提供方(Provider)和服務(wù)消費(fèi)方(Consumer)兩個(gè)角色。關(guān)于注冊中心竖螃、協(xié)議支持淑廊、服務(wù)監(jiān)控等內(nèi)容

應(yīng)用架構(gòu)進(jìn)化史

單一應(yīng)用架構(gòu):當(dāng)網(wǎng)站流量很小時(shí),只需一個(gè)應(yīng)用特咆,將所有功能都部署在一起季惩,以減少部署節(jié)點(diǎn)和成本。此時(shí)腻格,用于簡化增刪改查工作量的數(shù)據(jù)訪問框架(ORM)是關(guān)鍵画拾。

垂直應(yīng)用架構(gòu):當(dāng)訪問量逐漸增大,單一應(yīng)用增加機(jī)器帶來的加速度越來越小菜职,將應(yīng)用拆成互不相干的幾個(gè)應(yīng)用青抛,以提升效率。此時(shí)酬核,用于加速前端頁面開發(fā)的Web框架(MVC)是關(guān)鍵蜜另。

分布式服務(wù)架構(gòu):當(dāng)垂直應(yīng)用越來越多,應(yīng)用之間交互不可避免嫡意,將核心業(yè)務(wù)抽取出來举瑰,作為獨(dú)立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心蔬螟,使前端應(yīng)用能更快速的響應(yīng)多變的市場需求嘶居。此時(shí),用于提高業(yè)務(wù)復(fù)用及整合的分布式服務(wù)框架(RPC)是關(guān)鍵促煮。

流動計(jì)算架構(gòu):當(dāng)服務(wù)越來越多邮屁,容量的評估,小服務(wù)資源的浪費(fèi)等問題逐漸顯現(xiàn)菠齿,此時(shí)需增加一個(gè)調(diào)度中心基于訪問壓力實(shí)時(shí)管理集群容量佑吝,提高集群利用率。此時(shí)绳匀,用于提高機(jī)器利用率的資源調(diào)度和治理中心(SOA)是關(guān)鍵芋忿。

進(jìn)化圖

Dubbo最基本的幾個(gè)需求

當(dāng)服務(wù)越來越多時(shí)炸客,服務(wù) URL 配置管理變得非常困難,F(xiàn)5 硬件負(fù)載均衡器的單點(diǎn)壓力也越來越大戈钢。 此時(shí)需要一個(gè)服務(wù)注冊中心痹仙,動態(tài)的注冊和發(fā)現(xiàn)服務(wù),使服務(wù)的位置透明殉了。并通過在消費(fèi)方獲取服務(wù)提供方地址列表开仰,實(shí)現(xiàn)軟負(fù)載均衡和 Failover,降低對 F5 硬件負(fù)載均衡器的依賴薪铜,也能減少部分成本

當(dāng)進(jìn)一步發(fā)展众弓,服務(wù)間依賴關(guān)系變得錯(cuò)蹤復(fù)雜,甚至分不清哪個(gè)應(yīng)用要在哪個(gè)應(yīng)用之前啟動隔箍,架構(gòu)師都不能完整的描述應(yīng)用的架構(gòu)關(guān)系谓娃。 這時(shí),需要自動畫出應(yīng)用間的依賴關(guān)系圖蜒滩,以幫助架構(gòu)師理清理關(guān)系滨达。

服務(wù)的調(diào)用量越來越大,服務(wù)的容量問題就暴露出來俯艰,這個(gè)服務(wù)需要多少機(jī)器支撐弦悉?什么時(shí)候該加機(jī)器? 為了解決這些問題蟆炊,第一步稽莉,要將服務(wù)現(xiàn)在每天的調(diào)用量,響應(yīng)時(shí)間涩搓,都統(tǒng)計(jì)出來污秆,作為容量規(guī)劃的參考指標(biāo)。

? ? ? ? 其次昧甘,要可以動態(tài)調(diào)整權(quán)重良拼,在線上,將某臺機(jī)器的權(quán)重一直加大充边,并在加大的過程中記錄響應(yīng)時(shí)間的變化庸推,直到響應(yīng)時(shí)間到達(dá)閥值,記錄此時(shí)的訪問量浇冰,再以此訪問量乘以機(jī)器數(shù)反推總?cè)萘俊?/p>

為什么要學(xué)習(xí)Spring Dubbo贬媒?

Dubbo采用全Spring配置方式,透明化接入應(yīng)用肘习,對應(yīng)用沒有任何API侵入际乘,只需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴(kuò)展進(jìn)行加載漂佩。

最近一段時(shí)間頻繁出現(xiàn)在面試群中脖含,為了面試儲備知識

懶得列舉的一些優(yōu)點(diǎn)

已經(jīng)恢復(fù)維護(hù)

缺點(diǎn)罪塔??养葵?

只支持JAVA語言

2.知識剖析

架構(gòu)

節(jié)點(diǎn)角色說明

Provider:暴露服務(wù)的服務(wù)提供方

Consumer:調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方

Registry:服務(wù)注冊與發(fā)現(xiàn)的注冊中心

Monitor:統(tǒng)計(jì)服務(wù)的調(diào)用次數(shù)和調(diào)用時(shí)間的監(jiān)控中心

Container:服務(wù)運(yùn)行容器

調(diào)用關(guān)系說明

1.服務(wù)容器負(fù)責(zé)啟動征堪,加載,運(yùn)行服務(wù)提供者

2.服務(wù)提供者在啟動時(shí)关拒,向注冊中心注冊自己提供的服務(wù)

3.服務(wù)消費(fèi)者在啟動時(shí)佃蚜,向注冊中心訂閱自己所需的服務(wù)

4.注冊中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更夏醉,注冊中心將基于長連接推送變更數(shù)據(jù)給消費(fèi)者

5.服務(wù)消費(fèi)者爽锥,從提供者地址列表中涌韩,基于軟負(fù)載均衡算法畔柔,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗臣樱,再選另一臺調(diào)用

6.服務(wù)消費(fèi)者和提供者靶擦,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心

3.常見問題

Zookeeper和DUBBO的關(guān)系

4.解決方案

http://blog.csdn.net/daiqinge/article/details/51282874#reply

5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

什么是長連接和心跳機(jī)制雇毫?

網(wǎng)絡(luò)中的接收和發(fā)送數(shù)據(jù)都是使用操作系統(tǒng)中的SOCKET進(jìn)行實(shí)現(xiàn)玄捕。但是如果此套接字已經(jīng)斷開,那發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的時(shí)候就一定會有問題棚放∶墩常可是如何判斷這個(gè)套接字是否還可以使用呢?這個(gè)就需要在系統(tǒng)中創(chuàng)建心跳機(jī)制飘蚯。其實(shí)TCP中已經(jīng)為我們實(shí)現(xiàn)了一個(gè)叫做心跳的機(jī)制馍迄。如果你設(shè)置了心跳,那TCP就會在一定的時(shí)間(比如你設(shè)置的是3秒鐘)內(nèi)發(fā)送你設(shè)置的次數(shù)的心跳(比如說2次)局骤,并且此信息不會影響你自己定義的協(xié)議攀圈。所謂“心跳”就是定時(shí)發(fā)送一個(gè)自定義的結(jié)構(gòu)體(心跳包或心跳幀),讓對方知道自己“在線”峦甩。 以確保鏈接的有效性

7.參考文獻(xiàn)

http://dubbo.io/books/dubbo-user-book/

http://www.baeldung.com/dubbo

http://shiyanjun.cn/archives/325.html

8.更多討論

視頻:



騰訊視頻


PPT:https://ptteng.github.io/PPT/PPT-java/java-DUBBO-task10.html#/

Q:有沒有什么更進(jìn)階的資料

dubbo管理員指南:http://dubbo.io/books/dubbo-admin-book/

Q:有沒有什么更更進(jìn)階的資料

dubbo開發(fā)者指南:http://dubbo.io/books/dubbo-dev-book/

Q:現(xiàn)在用的公司多嗎赘来?

有不少,在DUBBO的gitter社區(qū)有很多登記了使用了DUBBO的公司

https://github.com/alibaba/dubbo/issues/1012


沒了凯傲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犬辰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冰单,更是在濱河造成了極大的恐慌忧风,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件球凰,死亡現(xiàn)場離奇詭異狮腿,居然都是意外死亡腿宰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門缘厢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吃度,“玉大人,你說我怎么就攤上這事贴硫〈幻浚” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵英遭,是天一觀的道長间护。 經(jīng)常有香客問我,道長挖诸,這世上最難降的妖魔是什么汁尺? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮多律,結(jié)果婚禮上痴突,老公的妹妹穿的比我還像新娘。我一直安慰自己狼荞,他們只是感情好辽装,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著相味,像睡著了一般拾积。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丰涉,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天拓巧,我揣著相機(jī)與錄音,去河邊找鬼昔搂。 笑死玲销,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摘符。 我是一名探鬼主播贤斜,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逛裤!你這毒婦竟也來了瘩绒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤带族,失蹤者是張志新(化名)和其女友劉穎锁荔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝙砌,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阳堕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年跋理,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恬总。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡前普,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出壹堰,到底是詐尸還是另有隱情拭卿,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布贱纠,位于F島的核電站峻厚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谆焊。R本人自食惡果不足惜惠桃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懊渡。 院中可真熱鬧刽射,春花似錦军拟、人聲如沸剃执。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肾档。三九已至,卻和暖如春辫继,著一層夾襖步出監(jiān)牢的瞬間怒见,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工姑宽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遣耍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓炮车,卻偏偏與公主長得像舵变,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子瘦穆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

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

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,823評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理纪隙,服務(wù)發(fā)現(xiàn),斷路器扛或,智...
    卡卡羅2017閱讀 134,662評論 18 139
  • 我成長在一個(gè)大家庭绵咱,在我懂事起,大哥已經(jīng)在外面讀書熙兔,回家的時(shí)間就很少了悲伶,我在四五歲時(shí)就覺得自己一定要好好讀書艾恼,...
    梅梅心情閱讀 503評論 1 1
  • 在365讀書里無意中遇到你,瀏覽了一些文章和關(guān)注了一些作者麸锉,有高興也有惶惶蒂萎,里面的文章功底是我望塵莫及的,年齡段也...
    過網(wǎng)閱讀 2,985評論 3 3
  • 咔嚓淮椰、咔五慈、咔、咔嚓嘣!你在干嘛呢主穗,快來一起嗑呀!不然你就要輸了!咦泻拦,這是在干什么呢?哦忽媒,原來這是在玩一一嗑瓜子比賽...
    江南1118閱讀 320評論 2 1