6

Sto provando a testare il nuovo client Memcached di Amazon con AutoDiscovery. Ho un nodo memcached che sono in grado di connettermi usando XMemcached 1.3.5 e una libreria SpyMemcached standard.Amazon ElasticCache Autodiscovery - Il client non è inizializzato

sto seguendo le istruzioni qui: http://docs.amazonwebservices.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.html

Il codice è quasi identico all'esempio ed è:

String configEndpoint = "<server name>.rgcl8z.cfg.use1.cache.amazonaws.com"; 
Integer clusterPort = 11211; 
MemcachedClient client = new MemcachedClient(new InetSocketAddress(configEndpoint, clusterPort)); 
client.set("theKey", 3600, "This is the data value"); 

vedo il seguente nei registri quando creo la connessione. L'errore si verifica quando si tenta di impostare un valore:

2013-01-04 22:05:30.445 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/<ip>:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue 
2013-01-04 22:05:32.861 INFO net.spy.memcached.ConfigurationPoller: Starting configuration poller. 
2013-01-04 22:05:32.861 INFO net.spy.memcached.ConfigurationPoller: Endpoint to use for configuration access in this poll NodeEndPoint - HostName:<our-server>.rgcl8z.cfg.use1.cache.amazonaws.com IpAddress:<ip> Port:11211 
2013-01-04 22:05:32.950 WARN net.spy.memcached.MemcachedClient: Configuration endpoint timed out for config call. Leaving the initialization work to configuration poller. 
Exception in thread "main" java.lang.IllegalStateException: Client is not initialized 
at net.spy.memcached.MemcachedClient.checkState(MemcachedClient.java:1623) 
at net.spy.memcached.MemcachedClient.enqueueOperation(MemcachedClient.java:1617) 
at net.spy.memcached.MemcachedClient.asyncStore(MemcachedClient.java:474) 
at net.spy.memcached.MemcachedClient.set(MemcachedClient.java:905) 
at com.thinknear.venice.initializers.VeniceAssets.main(VeniceAssets.java:227) 
  • Ho provato questo sia localmente che su un'istanza EC2 (posso collegare con altre biblioteche ai nodi)
  • ho provato utilizzando sia 1.4.5 e 1.4.14 motori Memcached
  • mi sono rilassato i vincoli del gruppo di protezione e nel caso in cui

dei pensieri su perché l'endpoint di configurazione sarebbe cronometrando fuori?

+3

Ho trovato la soluzione al mio problema. Sembra che i miei gruppi di sicurezza non siano stati installati correttamente. Una volta risolti i miei gruppi di sicurezza e implementato il mio codice nella nostra istanza EC2, è stato in grado di connettersi. – Moemars

+1

Potresti aggiungere come hai risolto il tuo gruppo di sicurezza. sto affrontando lo stesso problema e sono nuovo ai servizi di Amazon. Grazie – Sam

+0

@ Sam anch'io sto affrontando lo stesso problema e sarei interessato a come hai corretto il tuo gruppo di sicurezza. Ho provato ad aprirli al mondo ma non funziona ancora – Phil

risposta

8

Il client non è inizializzato: Non è possibile connettersi direttamente al nodo della cache elastica di Amazon tramite il computer locale, ma è possibile accedervi solo tramite ec2 machiene. Se si desidera controllare è possibile telnet dal computer locale che non si connetterà Ho anche riscontrato lo stesso problema. Puoi telnet dalla tua macchina Ec2. Quindi prova il tuo codice su ec2 machine che funzionerà.

+0

Sto usando spymemcache che è locale, quindi il mio codice dovrebbe essere eseguito senza questa eccezione, in quanto il mio codice locale può accedere a memcache. –

0

Fare telnet sul server memcache per verificare la connettività, nel mio caso non era elencato quindi non è stato possibile effettuare la connessione, risolto il problema elencando il mio server su memcache.