Dubbo概念
- Dubbo是一個高性能,輕量級的RPC分布式服務框架
- 提供了三核心能力:
- 面向介面的遠程方法呼叫(@Reference)
- 智能容錯
- 負載均衡
- Dubbo特點: 按照分層的方式來架構,可以使各個層之間解耦合
- Dubbo的角色:
- 提供方:Provider
- 消費方:Consumer
- Dubbo的提供非常簡單的服務模型,要么是提供方提供服務,要么是消費方消費服務
Dubbo的服務治理
- 透明遠程呼叫: 呼叫遠程方法就像呼叫本地方法一樣,只需簡單配置,沒有任何API侵入
- 負載均衡機制: Client端LB,在內網替代F5等硬體負載均衡器
- 容錯重試機制: 服務Mock資料,重試次數,超時機制
- 自動注冊發現: 注冊中心基于介面名查詢服務提供者的IP地址,可以添加和洗掉服務提供者
- 性能日志監控: Monitor,統計服務的呼叫次數和呼叫時間的監控中心
- 服務治理中心: 路由規則,動態配置,服務降級,訪問控制,權重調整,負載均衡
Dubbo的核心功能
- Remoting: 遠程通訊,提供對多種NIO框架抽象封裝,包括"同步轉異步"和"請求-回應"模式的資訊交換方式
- Cluster: 服務框架,提供基于介面方法的透明遠程程序呼叫,包括:多協議支持,軟負載均衡,容錯重試,路由規則,動態配置等集群支持
- Registry: 服務注冊中心,服務自動發現.基于注冊中心目錄服務,使服務消費方能動態地查找服務提供方,使地址透明,使服務提供方可以平滑地增加和減少機器
通信模型:
BIO : 同步并阻塞
NIO : 異步并阻塞
AIO : 異步非阻塞
通信框架 : netty
Dubbo組件角色
| 組件角色 | 說明 |
|---|---|
| Provider | 暴露服務的服務提供方 |
| Consumer | 呼叫遠程服務的服務消費方 |
| Registry | 服務注冊與發現的注冊中心 |
| Monitor | 統計服務呼叫次數和呼叫時間的監控中心 |
| Container | 服務運行容器 |
組件呼叫關系說明
- 服務容器Container負責啟動,加載,運行服務提供者
- 服務提供者Provider在啟動時,向注冊中心注冊自己提供的服務
- 服務消費者Consumer在啟動時,向注冊中心訂閱自己所需的服務
- 注冊中心Registry回傳服務提供者地址串列給消費者,如果有變更,注冊中心將基于長連接推送變更資料給消費者
- 服務消費者Consumer從提供者地址串列中,基于負載均衡演算法,選擇一臺提供者進行呼叫,如果呼叫失敗,再選另一臺進行呼叫
- 服務消費者Consumer和服務提供者Provider,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘發送一次統計資料到監控中心
Dubbo Admin管理控制臺
- 管理控制臺的主要功能:
- 路由規則
- 動態配置
- 服務降級
- 訪問控制
- 權限調整
- 負載均衡
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/286000.html
標籤:架構設計
