use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.
the class CseDiscoveryClient method getInstances.
@Override
public List<ServiceInstance> getInstances(final String serviceId) {
List<ServiceInstance> instances = new ArrayList<ServiceInstance>();
ServiceRegistryClient client = RegistryClientFactory.getRegistryClient();
String appId = DynamicPropertyFactory.getInstance().getStringProperty("APPLICATION_ID", "default").get();
ReferenceConfig referenceConfig = consumerProviderManager.getReferenceConfig(serviceId);
String versionRule = referenceConfig.getMicroserviceVersionRule();
String cseServiceID = client.getMicroserviceId(appId, serviceId, versionRule);
List<MicroserviceInstance> cseServices = client.getMicroserviceInstance(cseServiceID, cseServiceID);
if (null != cseServices && !cseServices.isEmpty()) {
for (MicroserviceInstance instance : cseServices) {
List<String> eps = instance.getEndpoints();
for (String ep : eps) {
URIEndpointObject uri = new URIEndpointObject(ep);
instances.add(new DefaultServiceInstance(instance.getServiceId(), uri.getHostOrIp(), uri.getPort(), false));
}
}
}
return instances;
}
use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.
the class TestRegistry method testFindServiceInstanceWithMicroServiceInstance.
@Test
public void testFindServiceInstanceWithMicroServiceInstance() {
List<MicroserviceInstance> microserviceInstanceList = new ArrayList<MicroserviceInstance>();
microserviceInstanceList.add(new MicroserviceInstance());
new MockUp<ServiceRegistryClientImpl>() {
@Mock
List<MicroserviceInstance> findServiceInstance(String selfMicroserviceId, String appId, String serviceName, String versionRule) {
return microserviceInstanceList;
}
};
List<MicroserviceInstance> microserviceInstanceListt = RegistryUtils.findServiceInstance("appId", "serviceName", "versionRule");
Assert.assertNotNull(microserviceInstanceListt);
}
use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.
the class TestRegistry method testUpdateInstanceProperties.
@Test
public void testUpdateInstanceProperties() {
MicroserviceInstance instance = RegistryUtils.getMicroserviceInstance();
instance.setServiceId("1");
instance.setInstanceId("1");
new MockUp<ServiceRegistryClientImpl>() {
@Mock
public boolean updateInstanceProperties(String microserviceId, String microserviceInstanceId, Map<String, String> instanceProperties) {
return true;
}
};
Assert.assertEquals(1, instance.getProperties().size());
Map<String, String> properties = new HashMap<>();
properties.put("tag1", "value1");
RegistryUtils.updateInstanceProperties(properties);
Assert.assertEquals(properties, instance.getProperties());
new MockUp<ServiceRegistryClientImpl>() {
@Mock
public boolean updateInstanceProperties(String microserviceId, String microserviceInstanceId, Map<String, String> instanceProperties) {
return false;
}
};
RegistryUtils.updateInstanceProperties(new HashMap<>());
Assert.assertEquals(properties, instance.getProperties());
}
use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance 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;
}
use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.
the class RegistryUtils method createMicroserviceInstance.
private static MicroserviceInstance createMicroserviceInstance() {
MicroserviceInstance microserviceInstance = new MicroserviceInstance();
microserviceInstance.setStage(DEFAULT_STAGE);
Map<String, String> propertiesMap = InstancePropertiesLoader.INSTANCE.loadProperties();
if (!isEmpty(propertiesMap)) {
microserviceInstance.setProperties(propertiesMap);
}
// healthcheck
if (RegistryClientFactory.getLocalModeFile().isEmpty()) {
HealthCheck healthCheck = new HealthCheck();
healthCheck.setMode(HealthCheckMode.HEARTBEAT);
microserviceInstance.setHealthCheck(healthCheck);
}
return microserviceInstance;
}
Aggregations