0

I am configuring a WebClient Bean using Spring Cloud Load Balancer with Multi-AZ configurations (e.g. A and B Zone), and I want to request A Zone first, and if I cannot connect to A Zone, I want to request it to B Zone. What form should it be in at this time?

Configuration.java

@Bean
public WebClient webClient(ReactorLoadBalancerExchangeFilterFunction loadBalancerFilterFunction) {
  ...
  return WebClient.builder()
                  .filter(loadBalancerFilterFunction)
                  .baseUrl("http://[a?b?]")
                  .build();
}

application.yml

spring:
  cloud:
    discovery:
      client:
        simple:
          instances:
            a:
              // ServiceInstances
            b:
              // ServiceInstances
  • This currently works for Eureka with `eureka.instance.metadata-map.zone`. The `ZonePreferenceServiceInstanceListSupplier` filters retrieved instances and only returns the ones within the same zone. If the zone is `null` or there are no instances within the same zone, it returns all the retrieved instances. See the docs: https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#zone-based-load-balancing. – OlgaMaciaszek Jan 09 '23 at 13:36

0 Answers0