Ribbon与RestTemplate配合使用,在RestTemplate配置方法加上@LoadBalanced。
Ribbon的负载均衡策略:
- RoundRobinRule:轮询
- RandomRule:随机
- RetryRule:先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内进行重试,获取可用的服务。
- WeightedResponseTimeRule:对RoundRobinRule的扩展,响应速度快的实例选择权重越大,越容易被选择。
- BestAvailableRule:会过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。
- AvailablityFilteringRule:先过滤掉故障实例,在选择并发较小的实例。
- ZoneAvoidanceRule:默认规则,符合判断server所在区的性能和server的可能性选择服务器。
更换负载均衡的策略:
这个自定义的配置类不能放在@ComponentScan所扫描的当前包下以及子包下,否则自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化定制的目的。
1,自定义配置类,切记不要放在@ComponentScan所扫描的当前包以及子包下。
@Configuration public class MySelfRule { @Bean public IRule myRule(){ return new RandomRule(); } }
2,在主启动类上添加@RibbonClient
@SpringBootApplication @EnableEurekaClient @RibbonClient(value = "CLOUD-PAYMENT-SERVICE",configuration = MySelfRule.class) public class Order80Main { public static void main(String[] args) { SpringApplication.run(Order80Main.class,args); } }
3,测试
posted on
浙公网安备 33010602011771号