Ribbon的默認內置了7種負載均衡策略:
1、RoundRobinRule
輪詢策略,Rabbon默認采用的策略,若經過一輪輪詢沒有找到可用的provider(提供者),其最多輪詢10輪,若最終
沒有找到,則返回NULL。
舉例:當前有3個提供者A,B,C,先挨個輪詢1遍,A,B,C都不訪問(1輪),在A,B,C訪問一遍(2輪次),一共試10輪
如果還不能訪問,則返回NULL。
2、RandomRule
隨機策略,從所有可用的provider(提供者)中選擇一個。
3、RetryRule
重試策略,先按照RoundRobinRule策略獲取provider(策略者)能獲取到直接返回,若獲取失敗,則在指定的時限內重試,
默認的時限為500毫秒。【RoundRobinRule輪詢策略,默認是10輪,而RetryRule我給你500毫秒,你可以一直重試,直到找到為止】
4、BestAvailableRule
最可用策略。選擇並發量最小的provider(提供者), 即連接的消費者數量最少的provider 。
5、AvailabilityFilteringRule
可用過濾算法。該算法規則是:過濾掉處於熔斷狀態的provider與已經超過連接極限的provider,對剩余provider采用輪詢策略。
6、ZoneAvoidanceRule
zone回避策略。根據provider所在zone及provider的可用性,對provider進行選擇。
7、WeightedResponseTimeRule
“權重響應時間”策略。根據每個provider的平均響應時間計算其權重,響應時間越快權重越大,被選中的機率就越高。
在剛啟動時采用輪詢策略。后面就會根據權重進行選擇了。