List of usage examples for com.amazonaws.services.elasticache.model CacheCluster getConfigurationEndpoint
public Endpoint getConfigurationEndpoint()
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.
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())); }