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 2021-01-02 12:53  会飞的金鱼  阅读(335)  评论(0)    收藏  举报