版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、湖南滿天星軟件科技有限公司 Dubbo框架,周運(yùn)祿 2015.07.27,01,02,03,我們期望解決哪些關(guān)鍵問題?,Dubbo的基本介紹?,我們?nèi)绾问褂肈ubbo?,目 錄,目錄,我們期望解決哪些關(guān)鍵問題?,將服務(wù)抽離單獨(dú)的服務(wù)層 應(yīng)用層和服務(wù)層同時支持集群,應(yīng)用層和服務(wù)層可隨時增加節(jié)點(diǎn) NIO的服務(wù)調(diào)用方式,解決性能問題 監(jiān)控,以應(yīng)對大并發(fā)阻塞,解決方案的尋覓之路,搜服務(wù)調(diào)用,mina,netty,DUBBO,DUBBO是一個分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,是阿里巴巴SOA服務(wù)化治理方案的核心框架,每天為2,000+個服務(wù)提供3,000,000,000+
2、次訪問量支持,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)。,類似的解決方案,淘寶:HSF (資料不體系,有若干微博) 亞馬遜:Coral (資料不容易找到) 阿里: dubbo (資料也不多,但夠用了) 訪問url:dubbo.io 用戶指南 開發(fā)者指南 管理員指南 培訓(xùn)文檔,01,02,03,我們期望解決哪些關(guān)鍵問題?,Dubbo的基本介紹,我們?nèi)绾问褂肈ubbo?,目 錄,目錄,Dubbo的出現(xiàn)背景,單一應(yīng)用架構(gòu) (改善增刪改查,ORM 是關(guān)鍵) 垂直應(yīng)用架構(gòu) (加速前端頁面開發(fā),MVC是關(guān)鍵) 分布式服務(wù)架構(gòu) (分布式服務(wù)框架,RPC是關(guān)鍵) 流動計(jì)算架構(gòu) (提高集群利用率,SOA是關(guān)鍵),
3、Dubbo的出現(xiàn)背景,分布式服務(wù)架構(gòu)以及流動計(jì)算架構(gòu)勢在必行 亟需一個治理系統(tǒng)確保架構(gòu)有條不紊的演進(jìn),Dubbo具體解決哪些問題?,當(dāng)服務(wù)越來越多時,服務(wù)URL配置管理變得非常困難,F(xiàn)5硬件負(fù)載均衡器的單點(diǎn)壓力也越來越大。-動態(tài)注冊與發(fā)現(xiàn)服務(wù),實(shí)現(xiàn)軟負(fù)載均衡, 服務(wù)間依賴關(guān)系變得錯蹤復(fù)雜,甚至分不清哪個應(yīng)用要在哪個應(yīng)用之前啟動,架構(gòu)師都不能完整的描述應(yīng)用的架構(gòu)關(guān)系。-自動勾畫依賴關(guān)系,自動加載 服務(wù)的調(diào)用量越來越大,服務(wù)的容量問題就暴露出來,這個服務(wù)需要多少機(jī)器支撐?什么時候該加機(jī)器?-a,統(tǒng)計(jì)調(diào)用量,響應(yīng)時間。b,動態(tài)調(diào)整權(quán)重,感受一下Dubbo,啟動ZooKeeper(注冊中心) 部署Pr
4、ovider,啟動服務(wù)方 部署Consumer,查看調(diào)用方調(diào)用代碼,運(yùn)行 運(yùn)行監(jiān)控中心,思考一下?,應(yīng)用Dubbo的業(yè)務(wù)代碼應(yīng)該分為哪幾個部署包?,DUBBO 的架構(gòu),Dubbo的架構(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)用次調(diào)和調(diào)用時間的監(jiān)控中心。 Container: 服務(wù)運(yùn)行容器。,調(diào)用關(guān)系說明: 0. 服務(wù)容器負(fù)責(zé)啟動,加載,運(yùn)行服務(wù)提供者。 1. 服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。 2. 服務(wù)消費(fèi)者在啟動時,向注冊中心訂
5、閱自己所需的服務(wù)。 3. 注冊中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費(fèi)者。 4. 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。 5. 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。,Dubbo模塊分包,dubbo-common 公共邏輯模塊,包括Util類和通用模型。 dubbo-remoting 遠(yuǎn)程通訊模塊,相當(dāng)于Dubbo協(xié)議的實(shí)現(xiàn),如果RPC用RMI協(xié)議則不需要使用此包。 dubbo-rpc 遠(yuǎn)程調(diào)用模塊,抽象各種協(xié)議,以及動態(tài)代理,只包
6、含一對一的調(diào)用,不關(guān)心集群的管理。 dubbo-cluster 集群模塊,將多個服務(wù)提供方偽裝為一個提供方,包括:負(fù)載均衡, 容錯,路由等,集群的地址列表可以是靜態(tài)配置的,也可以是由注冊中心下發(fā)。,dubbo-registry 注冊中心模塊,基于注冊中心下發(fā)地址的集群方式,以及對各種注冊中心的抽象。 dubbo-monitor 監(jiān)控模塊,統(tǒng)計(jì)服務(wù)調(diào)用次數(shù),調(diào)用時間的,調(diào)用鏈跟蹤的服務(wù)。 dubbo-config 配置模塊,是Dubbo對外的API,用戶通過Config使用Dubbo,隱藏Dubbo所有細(xì)節(jié)。 dubbo-container 容器模塊,是一個Standlone的容器,以簡單的Ma
7、in加載Spring啟動,因?yàn)榉?wù)通常不需要Tomcat/JBoss等Web容器的特性,沒必要用Web容器去加載服務(wù)。,Dubbo的架構(gòu)特性,(1) 連通性: 注冊中心負(fù)責(zé)服務(wù)地址的注冊與查找,相當(dāng)于目錄服務(wù),服務(wù)提供者和消費(fèi)者只在啟動時與注冊中心交互,注冊中心不轉(zhuǎn)發(fā)請求,壓力較小。 監(jiān)控中心負(fù)責(zé)統(tǒng)計(jì)各服務(wù)調(diào)用次數(shù),調(diào)用時間等,統(tǒng)計(jì)先在內(nèi)存匯總后每分鐘一次發(fā)送到監(jiān)控中心服務(wù)器,并以報(bào)表展示 服務(wù)提供者向注冊中心注冊其提供的服務(wù),并匯報(bào)調(diào)用時間到監(jiān)控中心,此時間不包含網(wǎng)絡(luò)開銷 服務(wù)消費(fèi)者向注冊中心獲取服務(wù)提供者地址列表,并根據(jù)負(fù)載算法直接調(diào)用提供者,同時匯報(bào)調(diào)用時間到監(jiān)控中心,此時間包含網(wǎng)絡(luò)開銷
8、 注冊中心,服務(wù)提供者,服務(wù)消費(fèi)者三者之間均為長連接,監(jiān)控中心除外 注冊中心通過長連接感知服務(wù)提供者的存在,服務(wù)提供者宕機(jī),注冊中心將立即推送事件通知消費(fèi)者 注冊中心和監(jiān)控中心全部宕機(jī),不影響已運(yùn)行的提供者和消費(fèi)者,消費(fèi)者在本地緩存了提供者列表 注冊中心和監(jiān)控中心都是可選的,服務(wù)消費(fèi)者可以直連服務(wù)提供者,Dubbo的架構(gòu)特性,(2) 健狀性: 監(jiān)控中心宕掉不影響使用,只是丟失部分采樣數(shù)據(jù) 數(shù)據(jù)庫宕掉后,注冊中心仍能通過緩存提供服務(wù)列表查詢,但不能注冊新服務(wù) 注冊中心對等集群,任意一臺宕掉后,將自動切換到另一臺 注冊中心全部宕掉后,服務(wù)提供者和服務(wù)消費(fèi)者仍能通過本地緩存通訊 服務(wù)提供者無狀態(tài),任
9、意一臺宕掉后,不影響使用 服務(wù)提供者全部宕掉后,服務(wù)消費(fèi)者應(yīng)用將無法使用,并無限次重連等待服務(wù)提供者恢復(fù),Dubbo的架構(gòu)特性,(3) 伸縮性: 注冊中心為對等集群,可動態(tài)增加機(jī)器部署實(shí)例,所有客戶端將自動發(fā)現(xiàn)新的注冊中心 服務(wù)提供者無狀態(tài),可動態(tài)增加機(jī)器部署實(shí)例,注冊中心將推送新的服務(wù)提供者信息給消費(fèi)者 (4) 升級性: 當(dāng)服務(wù)集群規(guī)模進(jìn)一步擴(kuò)大,帶動IT治理結(jié)構(gòu)進(jìn)一步升級,需要實(shí)現(xiàn)動態(tài)部署,進(jìn)行流動計(jì)算,現(xiàn)有分布式服務(wù)架構(gòu)不會帶來阻力,未來Dubbo的架構(gòu)展望,DUBBO 的特性,Dubbo 有哪些特性?,Dubbo采用全Spring配置方式,透明化接入應(yīng)用,對應(yīng)用沒有任何API侵入,只需
10、用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴(kuò)展進(jìn)行加載。 理論上Dubbo可以只依賴JDK,不依賴于任何三方庫運(yùn)行(默認(rèn)依賴:log4j.jar,commons-logging.jar,javassist.jar,spring.jar,netty.jar),Dubbo功能特性,Dubbo的策略特性,注冊中心可配置,監(jiān)控中心,Dubbo的策略特性,通信協(xié)議可配置,NIO 可配置,Dubbo的策略特性,序列化特性,字節(jié)碼操作,Dubbo的策略特性,故障轉(zhuǎn)移機(jī)制,負(fù)載均衡機(jī)制,Dubbo的策略特性,條件路由配置,容器Container可配置,DUBBO 的配置,
11、詳細(xì)說明網(wǎng)址:http:/dubbo.io/User+Guide-zh.htm#UserGuide-zh-%E9%85%8D%E7%BD%AE%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C,配置項(xiàng)按用途分類,服務(wù)發(fā)現(xiàn):表示該配置項(xiàng)用于服務(wù)的注冊與發(fā)現(xiàn),目的是讓消費(fèi)方找到提供方。(匹配條件:group,interface,version) 服務(wù)治理:表示該配置項(xiàng)用于治理服務(wù)間的關(guān)系,或?yàn)殚_發(fā)測試提供便利條件。 性能調(diào)優(yōu):表示該配置項(xiàng)用于調(diào)優(yōu)性能,不同的選項(xiàng)對性能會產(chǎn)生影響。,Dubbo配置說明, 服務(wù)配置,用于暴露一個服務(wù),定義服務(wù)的元信息,一個服務(wù)可以用多個協(xié)議暴露,
12、一個服務(wù)也可以注冊到多個注冊中心。, 引用配置,用于創(chuàng)建一個遠(yuǎn)程服務(wù)代理,一個引用可以指向多個注冊中心。, 協(xié)議配置,用于配置提供服務(wù)的協(xié)議信息,協(xié)議由提供方指定,消費(fèi)方被動接受。, 應(yīng)用配置,用于配置當(dāng)前應(yīng)用信息,不管該應(yīng)用是提供者還是消費(fèi)者。, 模塊配置,用于配置當(dāng)前模塊信息,可選。, 模塊配置,用于配置當(dāng)前模塊信息,可選。, 注冊中心配置,用于配置連接注冊中心相關(guān)信息。, 監(jiān)控中心配置,用于配置連接監(jiān)控中心相關(guān)信息,可選。, 提供方的缺省值,當(dāng)ProtocolConfig和ServiceConfig某屬性沒有配置時,采用此缺省值,可選。, 消費(fèi)方缺省配置,當(dāng)ReferenceConfig
13、某屬性沒有配置時,采用此缺省值,可選。, 方法配置,用于ServiceConfig和ReferenceConfig指定方法級的配置信息。 用于指定方法參數(shù)配置。,Dubbo配置說明匯總, 服務(wù)配置,用于暴露一個服務(wù),定義服務(wù)的元信息,一個服務(wù)可以用多個協(xié)議暴露,一個服務(wù)也可以注冊到多個注冊中心。 引用配置,用于創(chuàng)建一個遠(yuǎn)程服務(wù)代理,一個引用可以指向多個注冊中心。 協(xié)議配置,用于配置提供服務(wù)的協(xié)議信息,協(xié)議由提供方指定,消費(fèi)方被動接受。 應(yīng)用配置,用于配置當(dāng)前應(yīng)用信息,不管該應(yīng)用是提供者還是消費(fèi)者。 模塊配置,用于配置當(dāng)前模塊信息,可選。 注冊中心配置,用于配置連接注冊中心相關(guān)信息。 監(jiān)控中心配
14、置,用于配置連接監(jiān)控中心相關(guān)信息,可選。 提供方的缺省值,當(dāng)ProtocolConfig和ServiceConfig某屬性沒有配置時,采用此缺省值,可選。 消費(fèi)方缺省配置,當(dāng)ReferenceConfig某屬性沒有配置時,采用此缺省值,可選。 方法配置,用于ServiceConfig和ReferenceConfig指定方法級的配置信息。 用于指定方法參數(shù)配置。,配置項(xiàng)覆蓋方式,方法級優(yōu)先, 接口級次之, 全局配置再次之。,如果級別一樣,則消費(fèi)方優(yōu)先,提供方次之。,注解方式配置,注解方式配置,API配置,DUBBO 部分特性詳解,集群容錯,各節(jié)點(diǎn)關(guān)系: 這里的Invoker是Provider的一
15、個可調(diào)用Service的抽象,Invoker封裝了Provider地址及Service接口信息。 Directory代表多個Invoker,可以把它看成List,但與List不同的是,它的值可能是動態(tài)變化的,比如注冊中心推送變更。 Cluster將Directory中的多個Invoker偽裝成一個Invoker,對上層透明,偽裝過程包含了容錯邏輯,調(diào)用失敗后,重試另一個。 Router負(fù)責(zé)從多個Invoker中按路由規(guī)則選出子集,比如讀寫分離,應(yīng)用隔離等。 LoadBalance負(fù)責(zé)從多個Invoker中選出具體的一個用于本次調(diào)用,選的過程包含了負(fù)載均衡算法,調(diào)用失敗后,需要重選。,集群容錯策
16、略,可以自行擴(kuò)展集群容錯策略,負(fù)載均衡,可以自行擴(kuò)展負(fù)載均衡策略,線程模型,多協(xié)議,不同服務(wù)不同協(xié)議 不同服務(wù)在性能上適用不同協(xié)議進(jìn)行傳輸,比如大數(shù)據(jù)用短連接協(xié)議,小數(shù)據(jù)大并發(fā)用長連接協(xié)議。 多協(xié)議暴露服務(wù),可以自行擴(kuò)展協(xié)議,多注冊中心,(1) 多注冊中心注冊 比如:中文站有些服務(wù)來不及在青島部署,只在杭州部署,而青島的其它應(yīng)用需要引用此服務(wù),就可以將服務(wù)同時注冊到兩個注冊中心。 (2) 不同服務(wù)使用不同注冊中心 比如:CRM有些服務(wù)是專門為國際站設(shè)計(jì)的,有些服務(wù)是專門為中文站設(shè)計(jì)的。 (3) 多注冊中心引用 比如:CRM需同時調(diào)用中文站和國際站的PC2服務(wù),PC2在中文站和國際站均有部署,接口及版本號都一樣,但連的數(shù)據(jù)庫不一樣。,可以自行擴(kuò)展注冊中心,服務(wù)分組,多版本,思考一下,如何實(shí)現(xiàn)不停機(jī)升級?,在低壓力時間段,先升級一半提供者為新版本 再將所有消費(fèi)者升級為新版本 然后將剩下的一半提供者升級為新版本,分組聚合,合并器及合并方法可擴(kuò)展,參數(shù)驗(yàn)證,參數(shù)驗(yàn)證,參數(shù)驗(yàn)證,結(jié)果緩存,lru 基于最近最少使用原則刪除多余緩存,保持最熱的數(shù)據(jù)被緩存。 threadlocal 當(dāng)前線程緩存,比如一個頁面渲染,用到很多portal,每個portal都要去查用戶信息,通過線程緩存,可以減少這種多余訪問。 jcache 與JSR107集成,可以橋接各
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)墻板施工報(bào)價協(xié)議模板匯編版A版
- 2024年高速公路監(jiān)控系統(tǒng)電線敷設(shè)合同
- 2024年航空航天零部件生產(chǎn)合同承包協(xié)議范本3篇
- 專業(yè)化進(jìn)修培訓(xùn)管理合同書2024版版B版
- 2025年度餐飲企業(yè)員工工作環(huán)境改善與安全保障合同3篇
- 2025年度云計(jì)算數(shù)據(jù)中心建設(shè)合同(安全高效版)3篇
- 2024施工合同路燈施工項(xiàng)目驗(yàn)收標(biāo)準(zhǔn)3篇
- 2024年設(shè)計(jì)行業(yè)技術(shù)交流合同協(xié)議書3篇
- 2024新款吉他租賃協(xié)議電子版下載版B版
- 2024年綜合性物業(yè)管理服務(wù)協(xié)議細(xì)則版B版
- 50以內(nèi)加減法口算題卡(1000道打印版)每日100道
- 黑龍江省2025屆高三最后一卷歷史試卷含解析
- GB/T 4008-2024錳硅合金
- 合伙人入股合作協(xié)議書
- 2024年中級經(jīng)濟(jì)師考試題庫含答案(完整版)
- 2024年個人信用報(bào)告(個人簡版)樣本(帶水印-可編輯)
- 八年級下冊物理電子課本
- 個人替公司代付協(xié)議
- 廢舊纖維回收和再利用策略
- 氬氣壓縮的或液化的的理化性質(zhì)及危險(xiǎn)特性表MSDS
- 生產(chǎn)計(jì)劃應(yīng)急預(yù)案
評論
0/150
提交評論