Dubbo(二)--dubbo核心概念
阿新 • • 發佈:2018-12-31
一、簡介
Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高效能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向介面的遠端方法呼叫,智慧容錯和負載均衡,以及服務自動註冊和發現。
官網:
http://dubbo.apache.org/
負載均衡:讓叢集裡面的機器,比較均勻的提供服務。
二、基本概念
- 服務提供者(Provider):暴露服務的服務提供方,服務提供者在啟動時,向註冊中心註冊自己提供的服務。
- 服務消費者(Consumer): 呼叫遠端服務的服務消費方,服務消費者在啟動時,向註冊中心訂閱自己所需的服務,服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗,再選另一臺呼叫。
- 註冊中心(Registry):註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者
- 監控中心(Monitor):服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心
Container是dubbo框架容器。容器一啟動,服務提供者會將自己所提供的服務資訊註冊到註冊中心,註冊中心就知道有哪些服務上線了。服務消費者啟動的時候,會去註冊中心訂閱它所需要的服務。
如果某個服務提供者有變更,註冊中心和服務消費者基於長連線的方式,將這個變更推送給服務消費者。
看上圖,步驟0、1、2是在初始化,整個應用啟動的時候來完成的。步驟3、5是一個非同步的過程。步驟4是同步的。
呼叫關係說明
- 服務容器負責啟動,載入,執行服務提供者。
- 服務提供者在啟動時,向註冊中心註冊自己提供的服務。
- 服務消費者在啟動時,向註冊中心訂閱自己所需的服務。
- 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。
- 服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗,再選另一臺呼叫。
- 服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心。