Spring Cloud LoadBalanced 切换负载均衡策略

  从 Spring Cloud Netflix 3.0 以后的版本开始,就已经没有ribbon的依赖,它的负载均衡是依靠的Spring Cloud的负载均衡策略,并且只有两种:轮询策略 和 随机策略,实现的是 ReactorServiceInstanceLoadBalancer 接口,有兴趣的可以去看看源码
Spring Cloud LoadBalanced 切换负载均衡策略_第1张图片
  当然相应的修改方法也有很大的改变,可以参考官方文档:https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#spring-cloud-loadbalancer
  本文就对新版的负载均衡器的使用做一个简要的说明
注意:
  本文的负载均衡器版本为spring-cloud-starter-loadbalancer:3.1.1

全局定义

  顾名思义,就是会在全局生效

// 定义使用的负载均衡器
// 注意:不能使用 @Configuration 标注此类是配置类,否则会抛出异常
public class LoadBalancerConfig {
    @Bean
    ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,
                                                            LoadBalancerClientFactory loadBalancerClientFactory) {
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
        return new RandomLoadBalancer(loadBalancerClientFactory
                .getLazyProvider(name, ServiceInstanceListSupplier.class),
                name);
    }
}
局部使用

  仅在指定的服务生效

@Configuration
@LoadBalancerClient(name = "eureka-provider-demo", configuration = LoadBalancerConfig.class)
public class MyConfiguration {
}

  Spring Cloud Netflix 3.0以上的版本还可以按照以前的方式修改负载均衡策略,相关的修改代码网上有很多,本文不在进行说明

你可能感兴趣的:(微服务,负载均衡策略,LoadBalanced)