天天看點

分布式RPC服務調用架構選型:使用Dubbo實作分布式服務調用Dubbo概念Dubbo的服務治理Dubbo的核心功能Dubbo元件角色Dubbo Admin管理控制台

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管理控制台

  • 管理控制台的主要功能:
    • 路由規則
    • 動态配置
    • 服務降級
    • 通路控制
    • 權限調整

繼續閱讀