/** * For each service monitored, create a thread that will grab the initial * info, then run a long-pool loop to get service updates from consul. */ public void monitorService(LoadBalancer lb) { this.loadBalancer = lb; RegistrationMonitorWorker worker = injector.getInstance(RegistrationMonitorWorker.class); worker.setLoadbalancer(loadBalancer); worker.setServiceName(lb.getServiceName()); Future future = executorService.submit(worker); workers.put(worker, future); }
public HttpRequestWrapper createHttpPost(RpcClient client) throws RpcCallException { this.client = client; ServiceEndpoint instance = loadBalancer.getHealthyInstance(); if (instance == null) { throw new RpcCallException(RpcCallException.Category.InternalServerError, "No available instance of " + loadBalancer.getServiceName()). withSource(serviceProps.getServiceName()); } return new HttpRequestWrapper("POST", instance); }
private HttpRequestWrapper createHttpPost(HttpRequestWrapper previous, List<ServiceEndpoint> triedEndpoints) throws RpcCallException { ServiceEndpoint instance = loadBalancer.getHealthyInstanceExclude(triedEndpoints); if (instance == null) { throw new RpcCallException(RpcCallException.Category.InternalServerError, "RpcCallException calling " + loadBalancer.getServiceName() + ", no available instance"). withSource(serviceProps.getServiceName()); } //TODO: There may still be a problem where retries are setting chunked encoding // or the content-length gets munged HttpRequestWrapper retval = new HttpRequestWrapper("POST", instance); retval.setHeaders(previous.getHeaders()); retval.setContentProvider(previous.getContentProvider()); return retval; }
Tags.PEER_SERVICE.set(span, loadBalancer.getServiceName()); span.setTag("rpc.call", client.getServiceMethodName()); if (orangeContext != null) {