Ribbon默認提供的是輪詢的負載均衡算法,完整了還有以下java
RoundRobinRule | 輪詢 |
---|---|
RandomRule | 隨機 |
AvaliabilityFilteringRule | 會先過濾因爲屢次訪問故障而處於斷路器跳閘的狀態的服務和併發的鏈接數量超過閾值的服務,而後對剩餘的服務列表按照輪詢策略 |
WeightedResponseTimeRule | 根據平均響應時間計算全部服務的權重,響應時間越快服務權重越大 |
RetryRule | 先按照RoundRobinRule策略獲取服務,若是獲取服務失敗會在指定時間內重試 |
BestAvailableRule | 會先過濾掉因爲屢次訪問故障二處於斷路器跳閘狀態的服務,而後選擇一個併發量最小的服務 |
ZoneAvoidanceRule | 默認規則,複合判斷server所在的區域的性能和server的可用性選擇服務器 |
在客戶端的配置類ConfigBean.java中添加IRule的實現算法
一、配置輪詢的負載均衡算法服務器
@Configuration public class ConfigBean { @Bean @LoadBalanced public RestTemplate geRestTemplate(){ return new RestTemplate(); } @Bean public IRule myRule(){ return new RandomRule(); } }
二、配置輪詢的負載均衡算法配置文件方法併發
#改變負載方式-沒用
DEMO-SERVICE.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule負載均衡