7

Мне не удалось найти хороший учебник по Memcached на Amazon Cloudand. Я очень новичок в этом кешировании. Я пытаюсь использовать memcached через службу ElastiCache Amazon и с помощью spymemcached-клиента, чтобы на самом деле сделать memcached-вызовы.Настройка Amazon ElastiCache w/spymemcached на Java

Вот что я сейчас делаю в Java:

try { 
     ConnectionFactoryBuilder connectionFactoryBuilder = new ConnectionFactoryBuilder(); 
     MemcachedClient memcachedClient = new MemcachedClient(
       connectionFactoryBuilder.build(), 
       AddrUtil.getAddresses("<beginning of cache node end point grabbed from AWS Console>.cache.amazonaws.com:11211")); 
     memcachedClient.set("test", 12, new Integer(12)); 
     System.out.println(memcachedClient.get("test")); 
    } catch (IOException ioException) { 
     ioException.printStackTrace(); 
    } 

ошибка, что я получаю, когда я пытаюсь это:

java.net.ConnectException: Connection refused 
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567) 
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:414) 
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:278) 
at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:1981) 
2012-02-01 19:25:35.415 WARN net.spy.memcached.MemcachedConnection: Closing, and  reopening {QA sa=<node endpoint>.cache.amazonaws.com/184.73.64.56:11211, #Rops=0, #Wops=2, #iq=0, topRop=null, [email protected]e, toWrite=0, interested=0}, attempt 1. 
net.spy.memcached.OperationTimeoutException: Timeout waiting for value 
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1142) 
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1157) 
at com.amazon.imaging.demo.SQSQueueManager.requeue(SQSQueueManager.java:117) 
at com.amazon.imaging.demo.SQSQueueManager.requeue(SQSQueueManager.java:88) 
at com.amazon.imaging.demo.DemoUI$4.run(DemoUI.java:368) 
at com.amazon.imaging.demo.DemoUI.main(DemoUI.java:391) 
Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: <node endpoint>.cache.amazonaws.com/184.73.64.56:11211 
at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:65) 
at net.spy.memcached.internal.GetFuture.get(GetFuture.java:37) 
at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1135) 
... 5 more 

Кто есть какие-либо идеи или опыт работы с этим? Спасибо!

ответ

2

Где вы занимаетесь этим? От с помощью экземпляра EC2 или от внешней сети. Помните, что серверы ElastiCache связаны группой безопасности, которая ограничивает доступ к экземплярам ElastiCAche. Поэтому проверьте группу безопасности и другие конфигурации, которые позволяют подключаться к серверу Memcached. насколько я знаю, ElastiCache не может быть доступен из-за границы AWS

Остальная часть кода выглядит отлично и cКонсультация с использованием фреймворка, подобного Spring, для обработки экземпляра объекта клиента memcache и соответствующей конфигурации.