Example usage for com.amazonaws.services.elasticache.model CacheCluster getConfigurationEndpoint

List of usage examples for com.amazonaws.services.elasticache.model CacheCluster getConfigurationEndpoint

Introduction

In this page you can find the example usage for com.amazonaws.services.elasticache.model CacheCluster getConfigurationEndpoint.

Prototype


public Endpoint getConfigurationEndpoint() 

Source Link

Document

Represents a Memcached cluster endpoint which, if Automatic Discovery is enabled on the cluster, can be used by an application to connect to any node in the cluster.

Usage

From source file:it.polimi.modaclouds.cpimlibrary.memcache.AmazonMemcache.java

License:Apache License

private void start(String memcacheAddr) {
    AWSCredentials credentials = null;//from   ww  w. j av  a 2s  .  c  o  m
    try {
        credentials = new PropertiesCredentials(
                getClass().getClassLoader().getResourceAsStream("AwsCredentials.properties"));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    ec = new AmazonElastiCacheClient(credentials);
    DescribeCacheClustersRequest describe_req = new DescribeCacheClustersRequest();
    describe_req.setShowCacheNodeInfo(true);
    DescribeCacheClustersResult describe_res = ec.describeCacheClusters(describe_req);
    List<CacheCluster> clusters = describe_res.getCacheClusters();
    for (CacheCluster c : clusters) {
        Endpoint conf_end = c.getConfigurationEndpoint();
        String addr = conf_end.getAddress() + ":" + conf_end.getPort();
        if (addr.equals(memcacheAddr)) {
            cluster = c;
            break;
        }
    }
    //setting security groups
    // List<String> sec_groups_names = new ArrayList<String>();
    // List<CacheSecurityGroup> res = ec.describeCacheSecurityGroups().getCacheSecurityGroups();
    // for(int i = 0; i < res.size(); i++) {
    //    if(res.get(i).getDescription().contains("Cloud Platform Independent Model"))
    //       sec_groups_names.add(res.get(i).getCacheSecurityGroupName());
    // }
    // ModifyCacheClusterRequest req = new ModifyCacheClusterRequest(cluster.getCacheClusterId());
    // req.setCacheSecurityGroupNames(sec_groups_names);
    // req.setApplyImmediately(true);
    // ec.modifyCacheCluster(req);
    //creation of memcached client
    List<InetSocketAddress> addrs = new ArrayList<InetSocketAddress>();
    if (cluster != null && cluster.getCacheNodes() != null) {
        for (CacheNode node : cluster.getCacheNodes()) {
            if (node != null) {
                Endpoint endpoint = node.getEndpoint();
                if (endpoint != null && endpoint.getAddress() != null) {
                    addrs.add(new InetSocketAddress(endpoint.getAddress(), endpoint.getPort()));
                }
            }
        }
    }
    if (addrs.size() > 0) {
        try {
            System.out.println("Creation of memCacheClient.");
            memCache = new MemcachedClient(addrs);
            System.out.println("memCacheClient created.");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } else
        System.out.println("No available nodes.");
}

From source file:org.springframework.cloud.aws.cache.ElastiCacheFactoryBean.java

License:Apache License

private static Endpoint getEndpointForCache(CacheCluster cacheCluster) {
    if (cacheCluster.getConfigurationEndpoint() != null) {
        return cacheCluster.getConfigurationEndpoint();
    }//from   w ww . j a v  a  2  s . c o  m

    if (!cacheCluster.getCacheNodes().isEmpty()) {
        return cacheCluster.getCacheNodes().get(0).getEndpoint();
    }

    throw new IllegalArgumentException("No Configuration Endpoint or Cache Node available to "
            + "receive address information for cluster:'" + cacheCluster.getCacheClusterId() + "'");
}

From source file:org.springframework.cloud.aws.cache.ElastiCacheMemcachedFactoryBean.java

License:Apache License

@Override
protected MemcachedClient createInstance() throws Exception {
    DescribeCacheClustersResult describeCacheClustersResult = this.amazonElastiCache.describeCacheClusters(
            new DescribeCacheClustersRequest().withCacheClusterId(getCacheClusterName()));

    CacheCluster cacheCluster = describeCacheClustersResult.getCacheClusters().get(0);
    if (!"available".equals(cacheCluster.getCacheClusterStatus())) {
        LOGGER.warn(//from w w w. j  a va  2  s. com
                "Cache cluster is not available now. Connection may fail during cache access. Current status is {}",
                cacheCluster.getCacheClusterStatus());
    }

    if (!"memcached".equals(cacheCluster.getEngine())) {
        throw new IllegalStateException("Currently only memcached is supported as the cache cluster engine");
    }

    Endpoint configurationEndpoint = cacheCluster.getConfigurationEndpoint();

    // We return every time one configuration endpoint. The amazon memcached client will connect to all nodes.
    return new MemcachedClient(
            new InetSocketAddress(configurationEndpoint.getAddress(), configurationEndpoint.getPort()));
}