dubbo是一個分佈式的服務框架,致力於提升性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。web
簡言之,dubbo就是一個服務框架,若是沒有分佈式的需求,其實不須要用的,只有分佈式的時候,才須要dubbo這樣的分佈式框架spring
本質裏,dubbo就是個服務調用的東東。。網絡
說白了就是個遠程服務調用的分佈式框架(告別webservice模式中的wsdl,以服務者與消費者的方式在dubbo上註冊)多線程
dubbo能夠和spring無縫集成架構
1)透明化的遠程方法調用,就像調用本地方法同樣,只需簡單配置,沒有任何API侵入負載均衡
2)軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,下降成本,減小單點框架
3)服務自動註冊與發現,再也不須要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,而且可以平滑添加或刪除服務提供者async
4)dubbo採用全spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需spring加載dubbo的配置便可,dubbo基於spring的schema擴展進行加載分佈式
dubbo的核心:性能
1)遠程通信:提供多種基於長鏈接的NIO框架封裝,包括多線程模型,序列號,以及「請求-響應」模式的信息交換方式
2)集羣容錯:提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持
3)自動發現:基於註冊中心目錄服務,使服務消費方可以動態查找服務提供方,使地址透明,使服務提供方能夠平滑增長或減小機器
dubbo主要核心部件
Remoting:網絡通訊框架,實現了sync-over-async和request-response消息機制。
RPC:一個遠程過程調用的抽象,支持負載均衡、容災和集羣功能。
Registry:服務目錄框架用於服務的註冊和服務事件發佈和訂閱。
dubbo核心架構圖: