負載均衡規則配置
預設情況下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
注意:重試過於頻繁後臺也會出現異常,但是頁面不會再次出現錯誤。
「其他文章」