Search in sources :

Example 1 with ServiceHealthCache

use of com.orbitz.consul.cache.ServiceHealthCache in project wildfly-swarm by wildfly-swarm.

the class CatalogWatcher method setupWatcher.

private void setupWatcher(String serviceName) {
    if (watchers.containsKey(serviceName)) {
        return;
    }
    CatalogOptions options = ImmutableCatalogOptions.builder().build();
    ServiceHealthCache healthCache = ServiceHealthCache.newCache(this.healthClientInjector.getValue(), serviceName, true, options, 5);
    try {
        healthCache.addListener(new ServiceCacheListener(serviceName, this.topologyManagerInjector.getValue()));
        healthCache.start();
        healthCache.awaitInitialized(1, TimeUnit.SECONDS);
        this.watchers.put(serviceName, healthCache);
    } catch (Exception e) {
        ConsulTopologyMessages.MESSAGES.errorSettingUpCatalogWatcher(serviceName, e);
    }
}
Also used : CatalogOptions(com.orbitz.consul.option.CatalogOptions) ImmutableCatalogOptions(com.orbitz.consul.option.ImmutableCatalogOptions) ServiceHealthCache(com.orbitz.consul.cache.ServiceHealthCache) StartException(org.jboss.msc.service.StartException)

Example 2 with ServiceHealthCache

use of com.orbitz.consul.cache.ServiceHealthCache in project jim-framework by jiangmin168168.

the class ConsulDiscoveryService method getUrls.

@Override
public List<RpcURL> getUrls(String registryHost, int registryPort) {
    List<RpcURL> urls = Lists.newArrayList();
    Consul consul = this.buildConsul(registryHost, registryPort);
    HealthClient client = consul.healthClient();
    String name = CONSUL_NAME;
    ConsulResponse object = client.getAllServiceInstances(name);
    List<ImmutableServiceHealth> serviceHealths = (List<ImmutableServiceHealth>) object.getResponse();
    for (ImmutableServiceHealth serviceHealth : serviceHealths) {
        RpcURL url = new RpcURL();
        url.setHost(serviceHealth.getService().getAddress());
        url.setPort(serviceHealth.getService().getPort());
        urls.add(url);
    }
    try {
        ServiceHealthCache serviceHealthCache = ServiceHealthCache.newCache(client, name);
        serviceHealthCache.addListener(new ConsulCache.Listener<ServiceHealthKey, ServiceHealth>() {

            @Override
            public void notify(Map<ServiceHealthKey, ServiceHealth> map) {
                logger.info("serviceHealthCache.addListener notify");
                RpcClientInvokerCache.clear();
            }
        });
        serviceHealthCache.start();
    } catch (Exception e) {
        logger.info("serviceHealthCache.start error:", e);
    }
    return urls;
}
Also used : ConsulResponse(com.orbitz.consul.model.ConsulResponse) ServiceHealth(com.orbitz.consul.model.health.ServiceHealth) ImmutableServiceHealth(com.orbitz.consul.model.health.ImmutableServiceHealth) HealthClient(com.orbitz.consul.HealthClient) Consul(com.orbitz.consul.Consul) ImmutableServiceHealth(com.orbitz.consul.model.health.ImmutableServiceHealth) RpcURL(com.jim.framework.rpc.common.RpcURL) ServiceHealthCache(com.orbitz.consul.cache.ServiceHealthCache) ServiceHealthKey(com.orbitz.consul.cache.ServiceHealthKey) ConsulCache(com.orbitz.consul.cache.ConsulCache) List(java.util.List)

Aggregations

ServiceHealthCache (com.orbitz.consul.cache.ServiceHealthCache)2 RpcURL (com.jim.framework.rpc.common.RpcURL)1 Consul (com.orbitz.consul.Consul)1 HealthClient (com.orbitz.consul.HealthClient)1 ConsulCache (com.orbitz.consul.cache.ConsulCache)1 ServiceHealthKey (com.orbitz.consul.cache.ServiceHealthKey)1 ConsulResponse (com.orbitz.consul.model.ConsulResponse)1 ImmutableServiceHealth (com.orbitz.consul.model.health.ImmutableServiceHealth)1 ServiceHealth (com.orbitz.consul.model.health.ServiceHealth)1 CatalogOptions (com.orbitz.consul.option.CatalogOptions)1 ImmutableCatalogOptions (com.orbitz.consul.option.ImmutableCatalogOptions)1 List (java.util.List)1 StartException (org.jboss.msc.service.StartException)1