Dubbo的介紹以及Dubbox的區別

Dubbo 是阿里巴巴公司開源的一個基於Java的高性能開源RPC框架,使得應用可經過高性能的 RPC 實現服務的輸出和輸入功能,能夠和 Spring框架無縫集成。後來由於某些緣由沒有維護,因而噹噹網在這之上推出了本身的Dubbox。算法

Dubbox 和Dubbo本質上沒有區別,名字的含義擴展了Dubbo而已,如下擴展出來的功能,也是選擇Dubbox很重要的考察點。spring

支持REST風格遠程調用(HTTP + JSON/XML):基於很是成熟的JBoss RestEasy框架,在dubbo中實現了REST風格(HTTP + JSON/XML)的遠程調用,以顯著簡化企業內部的跨語言交互,同時顯著簡化企業對外的Open API、無線API甚至AJAX服務端等等的開發。事實上,這個REST調用也使得Dubbo能夠對當今特別流行的「微服務」架構提供基礎性支持。 另外,REST調用也達到了比較高的性能,在基準測試下,HTTP + JSON與Dubbo 2.x默認的RPC協議(即TCP + Hessian2二進制序列化)之間只有1.5倍左右的差距,詳見文檔中的基準測試報告。tomcat

支持基於Kryo和FST的Java高效序列化實現:基於當今比較知名的Kryo和FST高性能序列化庫,爲Dubbo默認的RPC協議添加新的序列化實現,並優化調整了其序列化體系,比較顯著的提升了Dubbo RPC的性能,詳見文檔中的基準測試報告。架構

支持基於Jackson的JSON序列化:基於業界應用最普遍的Jackson序列化庫,爲Dubbo默認的RPC協議添加新的JSON序列化實現。負載均衡

支持基於嵌入式Tomcat的HTTP remoting體系:基於嵌入式tomcat實現dubbo的HTTP remoting體系(即dubbo-remoting-http),用以逐步取代Dubbo中舊版本的嵌入式Jetty,能夠顯著的提升REST等的遠程調用性能,並將Servlet API的支持從2.5升級到3.1。(注:除了REST,dubbo中的WebServices、Hessian、HTTP Invoker等協議都基於這個HTTP remoting體系)。框架

升級Spring:將dubbo中Spring由2.x升級到目前最經常使用的3.x版本,減小版本衝突帶來的麻煩。異步

升級ZooKeeper客戶端:將dubbo中的zookeeper客戶端升級到最新的版本,以修正老版本中包含的bug。ide

支持徹底基於Java代碼的Dubbo配置:基於Spring的Java Config,實現徹底無XML的純Java代碼方式來配置dubbo微服務

調整Demo應用:暫時將dubbo的demo應用調整並改寫以主要演示REST功能、Dubbo協議的新序列化方式、基於Java代碼的Spring配置等等。性能

修正了dubbo的bug 包括配置、序列化、管理界面等等的bug。

注:dubbox和dubbo 2.x是兼容的,沒有改變dubbo的任何已有的功能和配置方式(除了升級了spring之類的版本)

Dubbo的做用以及介紹

Dubbo服務治理

特性 描述
透明遠程調用 就像調用本地方法同樣調用遠程方法;只需簡單配置,沒有任何API侵入;
負載均衡機制 Client端LB,可在內網替代F5等硬件負載均衡器;
容錯重試機制 服務Mock數據,重試次數、超時機制等;
自動註冊發現 註冊中心基於接口名查詢服務提 供者的IP地址,而且可以平滑添加或刪除服務提供者;
性能日誌監控 Monitor統計服務的調用次調和調用時間的監控中心;
服務治理中心 路由規則,動態配置,服務降級,訪問控制,權重調整,負載均衡,等手動配置。
自動治理中心 無,好比:熔斷限流機制、自動權重調整等;
Dubbo提供三個關鍵功能,包括基於接口的遠程調用,容錯和負載平衡,以及自動服務註冊和發現。

Duboox項目中的名詞解析

Provider:暴露服務的服務提供方

Consumer:調用遠程服務的服務消費方

Registry:提供註冊與調用服務的註冊中心

Monitor:統計服務的調用次數和調用時間的監控中心

Container:服務運行容器

調用關係說明

服務容器負責啓動,加載,運行服務提供者。
服務提供者在啓動時,向註冊中心註冊本身提供的服務。
服務消費者在啓動時,向註冊中心訂閱本身所需的服務。
註冊中心返回服務提供者地址列表給消費者,若是有變動,註冊中心將基於長鏈接推送變動數據給消費者。
服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,若是調用失敗,再選另外一臺調用。
服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
通俗的解釋下dubbo的整個流程,我將服務比喻成房子:

start:dubbo一啓動,房東想好本身準備要租出去的房子

register:房東將房子拿到房產中介那邊進行登記,並留下本身的聯繫方式

subscribe:租戶告訴房產中介本身想租一個什麼樣的房子

notify:房產中介回覆給租戶符合條件的房子的房東的聯繫方式

invoke:租戶拿着聯繫方式去找房東租房子

count:房產局全程監控着房東和租戶之間的交易

其中:

start、register、subscribe在dubbo服務一啓動就完成了

notify、count是異步執行的

invoke是同步執行的

Dubbo的特色Dubbo 架構具備如下幾個特色,分別是連通性、健壯性、伸縮性、以及向將來架構的升級性。

相關文章
相關標籤/搜索