@Override public Observable<Server> resolve() { if (loadBalancer == null) { loadBalancer = loadBalancerBuilder.withMembershipSource(serverUpdates()).build(); } return loadBalancer.choose(); }
public EurekaServerResolver build() { if (serviceSelector == null) { serviceSelector = ServiceSelector.selectBy() .serviceLabel(Names.DISCOVERY).publicIp(true) .or() .serviceLabel(Names.DISCOVERY); } if (loadBalancerBuilder == null) { loadBalancerBuilder = new DefaultLoadBalancerBuilder<>(null); } if (eurekaClient != null && bootstrapResolver != null) { throw new IllegalArgumentException("Both EurekaClient and bootstrap ServerResolver provided, while only one of the two expected"); } if (eurekaClient != null) { return new EurekaServerResolver(eurekaClient, readServerVip, serviceSelector, loadBalancerBuilder); } if (bootstrapResolver != null) { return new EurekaServerResolver(bootstrapResolver, readServerVip, serviceSelector, loadBalancerBuilder); } return null; } }