Dubbo架構簡介

2021-08-30 15:27:05 字數 1834 閱讀 8542

一、dubbo的設計角色

(1)系統角色

provider: 暴露服務的服務提供方。

consumer: 呼叫遠端服務的服務消費方。

registry: 服務註冊與發現的註冊中心。1

monitor: 統計服務的呼叫次調和呼叫時間的監控中心。

container: 服務執行容器。

(2)呼叫關係

服務容器負責啟動,載入,執行服務提供者。

服務提供者在啟動時,向註冊中心註冊自己提供的服務。

服務消費者在啟動時,向註冊中心訂閱自己所需的服務。

註冊中心返回服務提供者位址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。

服務消費者,從提供者位址列表中,基於軟負載均衡演算法,選一台提供者進行呼叫,如果呼叫失敗,再選另一台呼叫。

服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心

二、dubbo是如何架構的

dubbo的總體架構如圖所示:

框架分層架構中,各個層次的設計要點:

服務介面層(service):該層是與實際業務邏輯相關的,根據服務提供方和服務消費方的業務設計對應的介面和實現。

配置層(config):對外配置介面,以serviceconfig和referenceconfig為中心,可以直接new配置類,也可以通過spring解析配置生成配置類。

服務**層(proxy):服務介面透明**,生成服務的客戶端stub和伺服器端skeleton,以serviceproxy為中心,擴充套件介面為proxyfactory。

服務註冊層(registry):封裝服務位址的註冊與發現,以服務url為中心,擴充套件介面為registryfactory、registry和registryservice。可能沒有服務註冊中心,此時服務提供方直接暴露服務。

集群層(cluster):封裝多個提供者的路由及負載均衡,並橋接註冊中心,以invoker為中心,擴充套件介面為cluster、directory、router和loadbalance。將多個服務提供方組合為乙個服務提供方,實現對服務消費方來透明,只需要與乙個服務提供方進行互動。

監控層(monitor):rpc呼叫次數和呼叫時間監控,以statistics為中心,擴充套件介面為monito***ctory、monitor和monitorservice。

遠端呼叫層(protocol):封將rpc呼叫,以invocation和result為中心,擴充套件介面為protocol、invoker和exporter。protocol是服務域,它是invoker暴露和引用的主功能入口,它負責invoker的生命週期管理。invoker是實體域,它是dubbo的核心模型,其它模型都向它靠擾,或轉換成它,它代表乙個可執行體,可向它發起invoke呼叫,它有可能是乙個本地的實現,也可能是乙個遠端的實現,也可能乙個集群實現。

資訊交換層(exchange):封裝請求響應模式,同步轉非同步,以request和response為中心,擴充套件介面為exchanger、exchangechannel、exchangeclient和exchangeserver。

網路傳輸層(transport):抽象mina和netty為統一介面,以message為中心,擴充套件介面為channel、transporter、client、server和codec。

資料序列化層(serialize):可復用的一些工具,擴充套件介面為serialization、 objectinput、objectoutput和threadpool。

Dubbo背景簡介

一 介紹 dubbo 背景 大規模服務化之前,應用可能只是通過 rmi或 hessian 等工具,簡單的暴露和引用遠端服務,通過配置服務的 url位址進行呼叫,通過 f5等硬體進行負載均衡。1 當服務越來越多時,服務 url配置管理變得非常困難,f5硬體負載均衡器的單點壓力也越來越大。此時需要乙個服...

Dubbo架構原理

remoting 遠端通訊,提供對多種nio框架抽象封裝,包括 同步轉非同步 和 請求 響應 模式的資訊交換方式。cluster 服務框架,提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,位址路由,動態配置等集群支援。registry 服務註冊中心,基於註冊中心目錄服務...

Dubbo架構介紹

1,什麼是dubbo dubbo是阿里巴巴在2011年開源的分布式服務框架,是服務化治理的核心框架。dubbo主要提供3個功能,遠端介面呼叫,負載均衡和容錯,服務註冊和服務發現 目前,已經是apache的開源專案 官網 2,dubbo的架構 節點角色說明 掌握 provider 暴露服務的服務提供方...