負載均衡規則配置

語言: CN / TW / HK

 

默認情況下Ribbon的負載均衡策略是輪詢,Ribbon常用的負載均衡

規則分類

5、最低併發策略(BestAvailableRule)

逐個查看server,選擇一個併發連接最低的server

4、區域權重策略(ZoneAwareRule)

綜合判斷server所在區域的性能和server的可用性選擇server

6、重試策略(RetryRule)

對選定的負載均衡策略機上重試機制

7、可用過濾策略(AvailabilityFilteringRule)

過濾掉一直失敗並被標記為circuit tripped的server

8、ResponseTimeWeightedRule

已廢棄,作用同WeightedResponseTimeRule

 

3、加權響應時間策略 (WeightedResponseTimeRule)

根據響應時間分配一個weight,響應時間越長,weight越小,被選中的可能性越低。

1、簡單輪詢策略(RoundRobinRule)

以輪詢的方式依次將請求調度不同的服務器

2、隨機策略 (RandomRule)

隨機選擇狀態為UP的Server

規則配置

yml文件配置指定服務的負載均衡策略

  • # com.netflix.loadbalancer.RandomRule #配置規則 隨機

  • # com.netflix.loadbalancer.RoundRobinRule #配置規則 輪詢

  • # com.netflix.loadbalancer.RetryRule #配置規則 重試

  • # com.netflix.loadbalancer.WeightedResponseTimeRule #配置規則 響應時間權重

  • #com.netflix.loadbalancer.BestAvailableRule #配置規則 最空閒連接策略

重試機制

當我們選擇輪詢負載均衡策略的時候,如果一個服務停掉,因為服務剔除的延遲,消費者並不會立即得到最新的服務列表,此時再次訪問你會得到錯誤提示:

Spring Cloud 整合了Spring Retry 來增強RestTemplate的重試能力,當一次服務調用失敗後,不會立即拋出一次,而是再次重試另一個服務。

注意:使用重試,要設置負載均衡策略為輪詢com.netflix.loadbalancer.RoundRobinRule

注意:重試過於頻繁後台也會出現異常,但是頁面不會再次出現錯誤。