5、Ribbon負載均衡策略
阿新 • • 發佈:2020-09-10
Ribbon 的負載均衡策略是有IRule介面定義,該介面如下實現:
RoundRobinRule | 輪詢 |
RandomRule | 隨機 |
AvailabilityFilterRule | 先過濾掉由於多次訪問故障的服務,以及併發連線數超過閾值的服務,然後對剩下的服務按照輪詢策略進行訪問 |
WeightedResponseTimeRule | 根據平均響應時間計算所有服務的權重,響應時間越快服務權重越大被選中的概率就越高,如果服務剛啟動是統計資訊不足,則使用RoundRobinRule 策略,待統計資訊足夠,會切換到該WeightedResponseTimeRule 策略 |
RetryRule | 先按照RoundRobinRule 策略分發,如果分發到的服務補鞥呢訪問,則指定時間內進行重試,分發其他可用的服務 |
BestAvailableRule | 先過濾掉由於多次訪問故障的服務,然後選擇一個併發量最小的服務 |
ZoneAvoidanceRule | 綜合判斷服務節點所在區域的效能和服務節點的可用性,來決定選擇哪個服務 |
配置Ribbon負載均衡策略
//配置檔案 @Configuration public class BeanConfig { /** * @Bean 等價於 <bean id="restTemplate" class="xxx.xxx.RestTemplate"/> * * @return */ @LoadBalanced //使用Ribbon實現負載均衡的呼叫 @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } /** * 覆蓋掉原來ribbon預設的輪詢負載均衡策略 * @return */ @Bean public IRule iRule(){ return new RandomRule(); //隨機負載均衡 } }