Dubbo 簡介

一、Dubbo是什么?

Dubbo是:
一款分布式服務框架
高性能和透明化的RPC遠程服務調用方案
SOA服務治理方案

簡單來說,dubbo是一個服務框架,如果沒有分布式的需求,就不需要使用。當有在分布式需求時,需要dubbo這樣的分布式服務框架來實現服務遠程調用。

二、Dubbo能做什么?

1.透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
2.軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,降低成本,減少單點。

  1. 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基于接口名查詢服務提供者的IP地址,并且能夠平滑添加或刪除服務提供者。

Dubbo采用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴展進行加載。

三、Dubbo如何工作?

dubbo架構圖如下所示:


image.png

節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
服務調用關系說明:
0.服務容器負責啟動,加載,運行服務提供者。
1.服務提供者在啟動時,向注冊中心注冊自己提供的服務。
2.服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
3.注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。
4.服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
5.服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心

四、Dubbo優點和缺點?

1、優點:
透明化的遠程方法調用

  • 像調用本地方法一樣調用遠程方法;只需簡單配置,沒有任何API侵入。
    軟負載均衡及容錯機制
    可在內網替代nginx lvs等硬件負載均衡器。
    服務注冊中心自動注冊 & 配置管理
    -不需要寫死服務提供者地址,注冊中心基于接口名自動查詢提供者ip。
    使用類似zookeeper等分布式協調服務作為服務注冊中心,可以將絕大部分項目配置移入zookeeper集群。
    服務接口監控與治理
    -Dubbo-admin與Dubbo-monitor提供了完善的服務接口管理與監控功能,針對不同應用的不同接口,可以進行 多版本,多協議,多注冊中心管理。

2、缺點:
只支持JAVA語言

五、Dubbo 如何使用?

請參見文章
Dubbo 使用入門

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容