Search in sources :

Example 1 with FindInstancesResponse

use of io.servicecomb.serviceregistry.api.response.FindInstancesResponse in project java-chassis by ServiceComb.

the class ServiceRegistryClientImpl method findServiceInstance.

@Override
public List<MicroserviceInstance> findServiceInstance(String selfMicroserviceId, String appId, String serviceName, String versionRule) {
    Holder<FindInstancesResponse> holder = new Holder<>();
    IpPort ipPort = IpPortManager.INSTANCE.get();
    StringBuilder url = new StringBuilder(Const.MS_API_PATH);
    url.append(Const.INSTANCES_PATH);
    CountDownLatch countDownLatch = new CountDownLatch(1);
    RestUtils.get(ipPort, url.toString(), new RequestParam().addQueryParam("appId", appId).addQueryParam("serviceName", serviceName).addQueryParam("version", versionRule).addHeader("X-ConsumerId", selfMicroserviceId), syncHandler(countDownLatch, FindInstancesResponse.class, holder));
    try {
        countDownLatch.await();
        if (holder.value == null) {
            // error
            return null;
        }
        List<MicroserviceInstance> list = holder.value.getInstances();
        if (list == null) {
            return new ArrayList<>();
        }
        return list;
    } catch (Exception e) {
        LOGGER.error("find microservice instance {}/{}/{} failed", appId, serviceName, versionRule, e);
    }
    return null;
}
Also used : Holder(javax.xml.ws.Holder) ArrayList(java.util.ArrayList) MicroserviceInstance(io.servicecomb.serviceregistry.api.registry.MicroserviceInstance) IpPort(io.servicecomb.foundation.common.net.IpPort) CountDownLatch(java.util.concurrent.CountDownLatch) FindInstancesResponse(io.servicecomb.serviceregistry.api.response.FindInstancesResponse) ClientException(io.servicecomb.serviceregistry.client.ClientException)

Aggregations

IpPort (io.servicecomb.foundation.common.net.IpPort)1 MicroserviceInstance (io.servicecomb.serviceregistry.api.registry.MicroserviceInstance)1 FindInstancesResponse (io.servicecomb.serviceregistry.api.response.FindInstancesResponse)1 ClientException (io.servicecomb.serviceregistry.client.ClientException)1 ArrayList (java.util.ArrayList)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 Holder (javax.xml.ws.Holder)1