dubbo原始碼分析17 集群容錯總結

2021-08-20 09:51:08 字數 880 閱讀 7546

在集中式環境中服務的機器臺只有一台,這樣對於服務不僅存在服務單點故障問題而且還存在流量問題。為了解決這個問題,就引入的分布式與集群概念。

分布式:乙個業務分拆多個子業務,部署在不同的伺服器上

集群:同乙個業務,部署在多個伺服器上

當請求來臨時,如何從多個伺服器中,選擇乙個有效、合適的伺服器,這個集群所需要面對一問題。所以在集群裡面就引申出負載均衡(loadbalance),高可用(ha),路由(route)等概念。我們來看一下 dubbo 在進行服務呼叫的時候是如何處理的。

這張集群容錯包含以下幾個角色:

我們再來對照看一下 dubbo 的核心架構圖。

通過之前的一系列的原始碼分析,以及上面的二張 dubbo 架構圖,我們不難得出以下結論。

當 dubbo 的 provider 進行一次服務暴露的時候,就會有 registry 註冊乙個服務,然後通過 netty 進行暴露請求。當 consumer 需要進行服務呼叫的時候,通過 cluster 把多個服務偽裝成乙個 invoke,這樣對呼叫方就不需要關心到底有多少個服務呼叫方了。

集群通過到註冊中心去拿暴露當前服務的介面資訊的獲取到 directory (服務列表),然後通過配置的 route (路由規則) 找到滿足的 invoke 列表,最後通過 loadbalance 找到合適的乙個 invoke 進行遠端呼叫。在集群呼叫失敗時,dubbo 提供了多種容錯方案,預設為 failover 重試。這樣就對服務的高可用做到了保證。

dubbo原始碼分析之集群容錯failover 13

在集中式環境中服務的機器臺只有一台,這樣對於服務不僅存在服務單點故障問題而且還存在流量問題。為了解決這個問題,就引入的分布式與集群概念。分布式 乙個業務分拆多個子業務,部署在不同的伺服器上 集群 同乙個業務,部署在多個伺服器上 當請求來臨時,如何從多個伺服器中,選擇乙個有效 合適的伺服器,這個集群所...

Dubbo原始碼分析

dubbo原始碼分析 其實已經有很多比較好的原始碼分析部落格,結合部落格和開發經驗再去分析原始碼,就能對dubbo的實現有個整體全面的理解,也能深入去深究其中的具體實現細節。dubbo裡主要用到的spi service provider inte ce netty nio 同步非阻塞多路復用框架,d...

分布式RPC系統框架Dubbo 10集群容錯

集群容錯指的是,當消費者呼叫提供者集群時發生異常的處理方案。1.dubbo內建的容錯策略 dubbo內建了6種集群容錯策略。1 failover 故障轉移策略,預設容錯策略,需根據業務配置重試策略 當消費者呼叫提供者集群中的某個伺服器失敗時,其會自動嘗試著呼叫其它伺服器 該策略通常用於讀操作,例如,...