dubbo的負載均衡策略和容錯策略

2022-01-14 20:16:38 字數 875 閱讀 6706

預設情況下,dubbo 是 random load balance 隨機呼叫實現負載均衡,可以對 provider 不同例項設定不同的權重,會按照權重來負載均衡,權重越大分配流量越高,一般就用這個預設的就可以了。

這個的話預設就是均勻地將流量打到各個機器上去,但是如果各個機器的效能不一樣,容易導致效能差的機器負載過高。所以此時需要調整權重,讓效能差的機器承載權重小一些,流量少一些。

舉個栗子。

跟運維同學申請機器,有的時候,我們運氣好,正好公司資源比較充足,剛剛有一批熱氣騰騰、剛剛做好的一批虛擬機器新鮮出爐,配置都比較高:8 核 + 16g 機器,申請到 2 臺。過了一段時間,我們感覺 2 臺機器有點不太夠,我就去找運維同學說,「哥兒們,你能不能再給我一台機器」,但是這時只剩下一台 4 核 + 8g 的機器。我要還是得要。

這個時候,可以給兩台 8 核 16g 的機器設定權重 4,給剩餘 1 臺 4 核 8g 的機器設定權重 2。

這個就是自動感知一下,如果某個機器效能越差,那麼接收的請求越少,越不活躍,此時就會給不活躍的效能差的機器更少的請求。

一致性 hash 演算法,相同引數的請求一定分發到乙個 provider 上去,provider 掛掉的時候,會基於虛擬節點均勻分配剩餘的流量,抖動不會太大。如果你需要的不是隨機負載均衡,是要一類請求都到乙個節點,那就走這個一致性 hash 策略。

失敗自動切換,自動重試其他機器,預設就是這個,常見於讀操作。(失敗重試其它機器)

一次呼叫失敗就立即失敗,常見於寫操作。(呼叫失敗就立即失敗)

出現異常時忽略掉,常用於不重要的介面呼叫,比如記錄日誌。

失敗了後台自動記錄請求,然後定時重發,比較適合於寫訊息佇列這種。

並行呼叫多個 provider,只要乙個成功就立即返回。

逐個呼叫所有的 provider。

dubbo集群容錯和負載均衡

當我們的系統中用到dubbo的集群環境,因為各種原因在集群呼叫失敗時,dubbo提供了多種容錯方案,預設為failover重試。dubbo的集群容錯在這裡想說說他是因為我們實際的專案中出現了此類的問題,因為依賴的第三方專案出現異常,導致dubbo呼叫超時,此時使用的是預設的集群容錯方式,而配置的re...

Dubbo的容錯與負載均衡

雖然前面在介紹dubbo中寫過這塊內容,但是不夠充分,這裡詳細寫一下,在以後研究中,還會繼續補充程式原理。一 容錯 1.機制 在集群呼叫失敗時,dubbo 提供了多種容錯方案,預設為 failover 重試。可以自行擴充套件集群容錯策略 2.原理 3.分類 failover cluster 失敗自動...

Dubbo的容錯與負載均衡

雖然前面在介紹dubbo中寫過這塊內容,但是不夠充分,這裡詳細寫一下,在以後研究中,還會繼續補充程式原理。一 容錯 1.機制 在集群呼叫失敗時,dubbo 提供了多種容錯方案,預設為 failover 重試。可以自行擴充套件集群容錯策略 2.原理 3.分類 failover cluster 失敗自動...