天天看點

Dubbo架構介紹

1,什麼是Dubbo

Dubbo是阿裡巴巴在2011年開源的分布式服務架構,是服務化治理的核心架構。 Dubbo主要提供3個功能,遠端接口調用,負載均衡和容錯,服務注冊和服務發現

目前,已經是Apache的開源項目

官網:

http://dubbo.apache.org

2,Dubbo的架構

點選并拖拽以移動​

3,工作細節說明(來自dubbo官網)

節點角色說明(掌握)

Provider 暴露服務的服務提供方

Consumer 調用遠端服務的服務消費方

Registry 服務注冊與發現的注冊中心

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

Container 服務運作容器

調用關系說明

  1. 服務容器負責啟動,加載,運作服務提供者。
  2. 服務提供者在啟動時,向注冊中心注冊自己提供的服務。
  3. 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
  4. 注冊中心傳回服務提供者位址清單給消費者,如果有變更,注冊中心将基于長連接配接推送變更資料給消費者。
  5. 服務消費者,從提供者位址清單中,基于軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。
  6. 服務消費者和提供者,在記憶體中累計調用次數和調用時間,定時每分鐘發送一次統計資料到監控中心。

Dubbo 架構具有以下幾個特點

連通性

· 注冊中心負責服務位址的注冊與查找,相當于目錄服務,服務提供者和消費者隻在啟動時與注冊中心互動,注冊中心不轉發請求,壓力較小

· 監控中心負責統計各服務調用次數,調用時間等,統計先在記憶體彙總後每分鐘一次發送到監控中心伺服器,并以報表展示

· 服務提供者向注冊中心注冊其提供的服務,并彙報調用時間到監控中心,此時間不包含網絡開銷

· 服務消費者向注冊中心擷取服務提供者位址清單,并根據負載算法直接調用提供者,同時彙報調用時間到監控中心,此時間包含網絡開銷

· 注冊中心,服務提供者,服務消費者三者之間均為長連接配接,監控中心除外

· 注冊中心通過長連接配接感覺服務提供者的存在,服務提供者當機,注冊中心将立即推送事件通知消費者

· 注冊中心和監控中心全部當機,不影響已運作的提供者和消費者,消費者在本地緩存了提供者清單

· 注冊中心和監控中心都是可選的,服務消費者可以直連服務提供者

健狀性

· 監控中心宕掉不影響使用,隻是丢失部分采樣資料

· 資料庫宕掉後,注冊中心仍能通過緩存提供服務清單查詢,但不能注冊新服務

· 注冊中心對等叢集,任意一台宕掉後,将自動切換到另一台

· 注冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地緩存通訊

· 服務提供者無狀态,任意一台宕掉後,不影響使用

· 服務提供者全部宕掉後,服務消費者應用将無法使用,并無限次重連等待服務提供者恢複

伸縮性

注冊中心為對等叢集,可動态增加機器部署執行個體,所有用戶端将自動發現新的注冊中心

服務提供者無狀态,可動态增加機器部署執行個體,注冊中心将推送新的服務提供者資訊給消費者