您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關SpringCloud-Ribbon如何實現負載均衡,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Ribbon 作為一款客戶端負載均衡框架,默認的負載策略是輪詢,同時也提供了很多其他的策略,能夠讓用戶根據自身的業務需求進行選擇。
整體策略代碼實現類如圖 1 所示。
圖中說明如下:
選擇一個最小的并發請求的 Server,逐個考察 Server,如果 Server 被標記為錯誤,則跳過,然后再選擇 ActiveRequestCount 中最小的 Server。
過濾掉那些一直連接失敗的且被標記為 circuit tripped 的后端 Server,并過濾掉那些高并發的后端 Server 或者使用一個 AvailabilityPredicate 來包含過濾 Server 的邏輯。其實就是檢查 Status 里記錄的各個 Server 的運行狀態。
使用 ZoneAvoidancePredicate 和 AvailabilityPredicate 來判斷是否選擇某個 Server,前一個判斷判定一個 Zone 的運行性能是否可用,剔除不可用的 Zone(的所有 Server),AvailabilityPredicate 用于過濾掉連接數過多的 Server。
隨機選擇一個 Server。
輪詢選擇,輪詢 index,選擇 index 對應位置的 Server。
對選定的負載均衡策略機上重試機制,也就是說當選定了某個策略進行請求負載時在一個配置時間段內若選擇 Server 不成功,則一直嘗試使用 subRule 的方式選擇一個可用的 Server。
作用同 WeightedResponseTimeRule,ResponseTime-Weighted Rule 后來改名為 WeightedResponseTimeRule。
根據響應時間分配一個 Weight(權重),響應時間越長,Weight 越小,被選中的可能性越低。
以上就是SpringCloud-Ribbon如何實現負載均衡,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。