Search in sources :

Example 11 with MicroserviceInstance

use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.

the class TestPropertiesLoader method testInstancePropertiesLoader.

@Test
public void testInstancePropertiesLoader() {
    MicroserviceInstance instance = RegistryUtils.getMicroserviceInstance();
    Map<String, String> expectedMap = new HashMap<>();
    expectedMap.put("key0", "value0");
    Assert.assertEquals(expectedMap, instance.getProperties());
}
Also used : HashMap(java.util.HashMap) MicroserviceInstance(io.servicecomb.serviceregistry.api.registry.MicroserviceInstance) Test(org.junit.Test)

Example 12 with MicroserviceInstance

use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.

the class InstanceCache method createTransportMap.

protected Map<String, List<CacheEndpoint>> createTransportMap() {
    Map<String, List<CacheEndpoint>> transportMap = new HashMap<>();
    for (MicroserviceInstance instance : instanceMap.values()) {
        // 过滤到不可用实例
        if (instance.getStatus() != MicroserviceInstanceStatus.UP) {
            continue;
        }
        for (String endpoint : instance.getEndpoints()) {
            try {
                URI uri = URI.create(endpoint);
                String transportName = uri.getScheme();
                List<CacheEndpoint> cacheEndpointList = transportMap.get(transportName);
                if (cacheEndpointList == null) {
                    cacheEndpointList = new ArrayList<>();
                    transportMap.put(transportName, cacheEndpointList);
                }
                cacheEndpointList.add(new CacheEndpoint(endpoint, instance));
            } catch (Exception e) {
                LOGGER.warn("unrecognized address find, ignore " + endpoint);
            }
        }
    }
    return transportMap;
}
Also used : HashMap(java.util.HashMap) MicroserviceInstance(io.servicecomb.serviceregistry.api.registry.MicroserviceInstance) List(java.util.List) ArrayList(java.util.ArrayList) URI(java.net.URI)

Example 13 with MicroserviceInstance

use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.

the class InstanceCacheManager method create.

private InstanceCache create(String appId, String microserviceName, String microserviceVersionRule) {
    List<MicroserviceInstance> instances = RegistryUtils.findServiceInstance(appId, microserviceName, microserviceVersionRule);
    if (instances == null) {
        return null;
    }
    Map<String, MicroserviceInstance> instMap = new HashMap<>();
    for (MicroserviceInstance instance : instances) {
        instMap.put(instance.getInstanceId(), instance);
    }
    InstanceCache instCache = new InstanceCache(appId, microserviceName, microserviceVersionRule, instMap);
    String key = getKey(appId, microserviceName);
    cacheMap.put(key, instCache);
    return instCache;
}
Also used : ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) MicroserviceInstance(io.servicecomb.serviceregistry.api.registry.MicroserviceInstance)

Example 14 with MicroserviceInstance

use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.

the class TestCacheRegistryListener method testonMicroserviceInstanceChangedUPDATE.

@Test
public void testonMicroserviceInstanceChangedUPDATE() {
    MicroserviceInstanceChangedEvent changedEvent = new MicroserviceInstanceChangedEvent();
    changedEvent.setAction(WatchAction.UPDATE);
    MicroserviceKey key = Mockito.mock(MicroserviceKey.class);
    changedEvent.setKey(key);
    MicroserviceInstance mInstance = Mockito.mock(MicroserviceInstance.class);
    changedEvent.setInstance(mInstance);
    instance.onMicroserviceInstanceChanged(changedEvent);
}
Also used : MicroserviceInstanceChangedEvent(io.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent) MicroserviceKey(io.servicecomb.serviceregistry.api.MicroserviceKey) MicroserviceInstance(io.servicecomb.serviceregistry.api.registry.MicroserviceInstance) Test(org.junit.Test)

Example 15 with MicroserviceInstance

use of io.servicecomb.serviceregistry.api.registry.MicroserviceInstance in project java-chassis by ServiceComb.

the class TestCacheRegistryListener method testonMicroserviceInstanceChangedCREATE.

@Test
public void testonMicroserviceInstanceChangedCREATE() {
    MicroserviceInstanceChangedEvent changedEvent = new MicroserviceInstanceChangedEvent();
    changedEvent.setAction(WatchAction.CREATE);
    MicroserviceKey key = Mockito.mock(MicroserviceKey.class);
    changedEvent.setKey(key);
    MicroserviceInstance mInstance = Mockito.mock(MicroserviceInstance.class);
    changedEvent.setInstance(mInstance);
    instance.onMicroserviceInstanceChanged(changedEvent);
}
Also used : MicroserviceInstanceChangedEvent(io.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent) MicroserviceKey(io.servicecomb.serviceregistry.api.MicroserviceKey) MicroserviceInstance(io.servicecomb.serviceregistry.api.registry.MicroserviceInstance) Test(org.junit.Test)

Aggregations

MicroserviceInstance (io.servicecomb.serviceregistry.api.registry.MicroserviceInstance)18 ArrayList (java.util.ArrayList)9 Test (org.junit.Test)9 HashMap (java.util.HashMap)6 MockUp (mockit.MockUp)5 Microservice (io.servicecomb.serviceregistry.api.registry.Microservice)4 MicroserviceKey (io.servicecomb.serviceregistry.api.MicroserviceKey)3 MicroserviceInstanceChangedEvent (io.servicecomb.serviceregistry.api.response.MicroserviceInstanceChangedEvent)3 HealthCheck (io.servicecomb.serviceregistry.api.registry.HealthCheck)2 ClientException (io.servicecomb.serviceregistry.client.ClientException)2 List (java.util.List)2 Map (java.util.Map)2 IpPort (io.servicecomb.foundation.common.net.IpPort)1 URIEndpointObject (io.servicecomb.foundation.common.net.URIEndpointObject)1 CseServer (io.servicecomb.loadbalance.CseServer)1 RegistryThread (io.servicecomb.serviceregistry.RegistryThread)1 FindInstancesResponse (io.servicecomb.serviceregistry.api.response.FindInstancesResponse)1 HeartbeatResponse (io.servicecomb.serviceregistry.api.response.HeartbeatResponse)1 InstanceCache (io.servicecomb.serviceregistry.cache.InstanceCache)1 ServiceRegistryClient (io.servicecomb.serviceregistry.client.ServiceRegistryClient)1