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负载均衡