Dubbo--高可用(zookeeper宕機、dubbo直連、負載均衡)

zookeep宕機與dubbo直連

現象:zookeeper註冊中心宕機,還可以消費dubbo暴露的服務。

原因:

  • 監控中心宕掉不影響使用,只是丟失部分採樣數據
  • 數據庫宕掉後,註冊中心仍能通過緩存提供服務列表查詢,但不能註冊新服務
  • 註冊中心對等集羣,任意一臺宕掉後,將自動切換到另一臺
  • 註冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地緩存通訊
  • 服務提供者無狀態,任意一臺宕掉後,不影響使用
  • 服務提供者全部宕掉後,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復

高可用:通過設計,減少系統不能提供服務的時間;

集羣下dubbo負載均衡配置

在集羣負載均衡時,Dubbo 提供了多種均衡策略,缺省爲 random 隨機調用。

Random LoadBalance:

隨機,按權重設置隨機概率。

在一個截面上碰撞的概率高,但調用量越大分佈越均勻,而且按概率使用權重後也比較均勻,有利於動態調整提供者權重。
在這裏插入圖片描述

RoundRobin LoadBalance:

輪循,按公約後的權重設置輪循比率。

存在慢的提供者累積請求的問題,比如:第二臺機器很慢,但沒掛,當請求調到第二臺時就卡在那,久而久之,所有請求都卡在調到第二臺上。

在這裏插入圖片描述

LeastActive LoadBalance:

最少活躍調用數,相同活躍數的隨機,活躍數指調用前後計數差。
使慢的提供者收到更少請求,因爲越慢的提供者的調用前後計數差會越大。
在這裏插入圖片描述

ConsistentHash LoadBalance:

一致性 Hash,相同參數的請求總是發到同一提供者。

當某一臺提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。

算法參見:http://en.wikipedia.org/wiki/Consistent_hashing
缺省只對第一個參數 Hash,如果要修改,請配置

<dubbo:parameter key="hash.arguments" value="0,1" />
缺省用 160 份虛擬節點,如果要修改,請配置 <dubbo:parameter key="hash.nodes" value="320" />

在這裏插入圖片描述

發佈了774 篇原創文章 · 獲贊 2142 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章