淺談Dubbo架構

CatalpaFlat發表於2017-10-25

1.Dubbo是什麼
Dubbo是:
1)一款分散式服務框架
2)高效能和透明化的RPC遠端服務呼叫方案
3)SOA服務治理方案
每天為2千多個服務提供大於30億次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點以及別的公司的業務中。
2.Dubbo架構

dubbo架構
dubbo架構

Provider: 暴露服務的服務提供方。
Consumer: 呼叫遠端服務的服務消費方。
Registry: 服務註冊與發現的註冊中心。
Monitor: 統計服務的呼叫次數和呼叫時間的監控中心。
呼叫流程
0.服務容器負責啟動,載入,執行服務提供者。
1.服務提供者在啟動時,向註冊中心註冊自己提供的服務。
2.服務消費者在啟動時,向註冊中心訂閱自己所需的服務。
3.註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。
4.服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗,再選另一臺呼叫。
5.服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心
3.Dubbo註冊中心
對於服務提供方,它需要釋出服務,而且由於應用系統的複雜性,服務的數量、型別也不斷膨脹;
對於服務消費方,它最關心如何獲取到它所需要的服務,而面對複雜的應用系統,需要管理大量的服務呼叫。
而且,對於服務提供方和服務消費方來說,他們還有可能兼具這兩種角色,即既需要提供服務,有需要消費服務。

通過將服務統一管理起來,可以有效地優化內部應用對服務釋出/使用的流程和管理。服務註冊中心可以通過特定協議來完成服務對外的統一。

Dubbo提供的註冊中心有如下幾種型別可供選擇:

  • Multicast註冊中心
  • Zookeeper註冊中心
  • Redis註冊中心
  • Simple註冊中心
    4.Dubbo優缺點
    優點:
  1. 透明化的遠端方法呼叫
  • 像呼叫本地方法一樣呼叫遠端方法;只需簡單配置,沒有任何API侵入。
  1. 軟負載均衡及容錯機制
  • 可在內網替代nginx lvs等硬體負載均衡器。
  1. 服務註冊中心自動註冊 & 配置管理
    -不需要寫死服務提供者地址,註冊中心基於介面名自動查詢提供者ip。
    使用類似zookeeper等分散式協調服務作為服務註冊中心,可以將絕大部分專案配置移入zookeeper叢集。
  2. 服務介面監控與治理
    -Dubbo-admin與Dubbo-monitor提供了完善的服務介面管理與監控功能,針對不同應用的不同介面,可以進行 多版本,多協議,多註冊中心管理。
    缺點:
    只支援JAVA語言

相關文章