7

Nie byłem w stanie znaleźć dobrego samouczka na temat Memcached na Amazon Cloudand Jestem bardzo nowy w tej całej pamięci podręcznej. Próbuję użyć memcached przez usługę ElastiCache firmy Amazon, a klientem spymemcached, aby rzeczywiście wykonywać połączenia z pamięci podręcznej.Konfigurowanie Amazon ElastiCache w/spymemcached w Javie

Oto co robię w Javie teraz:

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(); 
    } 

błąd, który pojawia się przy próbie to:

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 

Ktoś ma jakieś pomysły lub doświadczenia z tym? Dzięki!

Odpowiedz

2

Gdzie to robisz? Od z w instancji EC2 lub z sieci zewnętrznej. Pamiętaj, że serwery ElastiCache są powiązane przez grupę zabezpieczeń, która ogranicza dostęp do instancji ElastiCAche. Tak więc sprawdź grupę bezpieczeństwa i inne konfiguracje, które pozwolą ci połączyć się z serwerem Memcached. o ile mi wiadomo, ElastiCache nie można uzyskać z zewnątrz granicy AWS

Reszta kodu wygląda dobrze i cConsider za pomocą struktury jak Spring do obsługi instancji obiektu klienta memcache i pokrewnej konfiguracji.