(19)java Spring Cloud+Spring boot+mybatis企業快速開發架構之SpringCloud-Ribbon負載均衡策略介紹

JIAN2 2021-09-18 15:39:45 阅读数:747

java spring cloud+spring cloud spring

 Ribbon 作為一款客戶端負載均衡框架,默認的負載策略是輪詢,同時也提供了很多其他的策略,能够讓用戶根據自身的業務需求進行選擇。推薦分布式架構源碼
整體策略代碼實現類如圖 1 所示。

圖中說明如下:

1)BestAvailabl
選擇一個最小的並發請求的 Server,逐個考察 Server,如果 Server 被標記為錯誤,則跳過,然後再選擇 ActiveRequestCount 中最小的 Server。

2)AvailabilityFilteringRule
過濾掉那些一直連接失敗的且被標記為 circuit tripped 的後端 Server,並過濾掉那些高並發的後端 Server 或者使用一個 AvailabilityPredicate 來包含過濾 Server 的邏輯。其實就是檢查 Status 裏記錄的各個 Server 的運行狀態。

3)ZoneAvoidanceRule
使用 ZoneAvoidancePredicate 和 AvailabilityPredicate 來判斷是否選擇某個 Server,前一個判斷判定一個 Zone 的運行性能是否可用,剔除不可用的 Zone(的所有 Server),AvailabilityPredicate 用於過濾掉連接數過多的 Server。

4)RandomRule
隨機選擇一個 Server。

5)RoundRobinRule
輪詢選擇,輪詢 index,選擇 index 對應比特置的 Server。

6)RetryRule
對選定的負載均衡策略機上重試機制,也就是說當選定了某個策略進行請求負載時在一個配置時間段內若選擇 Server 不成功,則一直嘗試使用 subRule 的方式選擇一個可用的 Server。

7)ResponseTimeWeightedRule
作用同 WeightedResponseTimeRule,ResponseTime-Weighted Rule 後來改名為 WeightedResponseTimeRule。

8)WeightedResponseTimeRule
根據響應時間分配一個 Weight(權重),響應時間越長,Weight 越小,被選中的可能性越低。

版权声明:本文为[JIAN2]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918153944893k.html