【问题标题】:Own Configuration of Spring Cloud LoadBalancerClientSpring Cloud LoadBalancerClient的自己配置
【发布时间】:2021-12-21 11:02:08
【问题描述】:

我想为 Spring Cloud LoadBalancerClient(包 org.springframework.cloud.client.loadbalancer.LoadBalancerClient)做我自己的配置。但是没有应用配置,默认使用Round Robin。

谁能进一步帮助我?

public class CustomLoadBalancerConfiguration {

    @Bean
    ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,
                                                            LoadBalancerClientFactory loadBalancerClientFactory) {
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
        return new RandomLoadBalancer(loadBalancerClientFactory
                .getLazyProvider(name, ServiceInstanceListSupplier.class),
                name);
    }

}


public class Client {


    @Autowired
    private LoadBalancerClient loadBalancerClient;


    @LoadBalanced
    private RestTemplate restTemplate = new RestTemplate();


    private String getBaseUrl() {
        ServiceInstance serviceInstance = loadBalancerClient.choose("eventService");
        System.out.println(serviceInstance);
        return serviceInstance.getUri().toString();
    }
   
    @GetMapping("/all")
    public String getAll() throws JsonProcessingException {
        String url = getBaseUrl()+"/xx";
        return restTemplate.getForObject(url, String.class);
    }

}

【问题讨论】:

    标签: spring spring-boot configuration load-balancing


    【解决方案1】:

    Spring Cloud 文档 (https://docs.spring.io/spring-cloud-commons/docs/3.0.3/reference/html/#custom-loadbalancer-configuration) 中,当您创建自定义负载均衡器配置时,您需要添加以下配置:

    @Configuration
    @LoadBalancerClient(value = "stores", configuration = CustomLoadBalancerConfiguration.class)
    public class MyConfiguration {
    
        @Bean
        @LoadBalanced
        public WebClient.Builder loadBalancedWebClientBuilder() {
            return WebClient.builder();
        }
    }
    

    这样就可以使用了。

    【讨论】:

      猜你喜欢
      • 2019-07-29
      • 2015-10-08
      • 2015-06-21
      • 2021-04-18
      • 2023-03-11
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多