diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java index f0d9b585..79d22a95 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java @@ -64,13 +64,14 @@ public class DiscoveryClientServiceInstanceListSupplier resolveTimeout(environment); this.serviceInstances = Flux .defer(() -> Flux.just(delegate.getInstances(serviceId))) + .subscribeOn(Schedulers.boundedElastic()) .timeout(timeout, Flux.defer(() -> { logTimeout(); return Flux.just(new ArrayList<>()); })).onErrorResume(error -> { logException(error); return Flux.just(new ArrayList<>()); - }).subscribeOn(Schedulers.boundedElastic()); + }); } public DiscoveryClientServiceInstanceListSupplier(ReactiveDiscoveryClient delegate,