6

자동 검색을 통해 Amazon의 새로운 Memcached 클라이언트를 테스트하려고합니다. XMemcached 1.3.5와 표준 SpyMemcached 라이브러리를 사용하여 연결할 수있는 memcached 노드가 하나 있습니다.Amazon ElasticCache 자동 검색 - 클라이언트가 초기화되지 않았습니다.

여기의 지침에 따라 오전 : http://docs.amazonwebservices.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.html

코드은 예와 거의 동일하고있다 : 나는 연결을 만들 때 나는 로그에 다음을 참조

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"); 

.

  • 내가 시도했다 (I는 노드에 다른 라이브러리를 사용하여 연결 할 수 있습니다) 내가 모두 로컬 및 EC2 인스턴스에서이 작업을 시도했습니다

    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) 
    
    • : 내가 값을 설정하려고하면 오류가 발생합니다 난 그냥 경우

    는 config 엔드 포인트가 시간 초과 될 이유에 대해 어떤 생각에서뿐만 아니라 보안 그룹의 제약을 완화 모두 1.4.5 및 1.4.14 Memcached가 엔진

  • 를 사용하고 계십니까?

  • +3

    나는 내 자신의 문제에 대한 해결책을 찾았습니다. 내 보안 그룹이 올바르게 설정되지 않은 것 같습니다. 보안 그룹을 수정하고 코드를 EC2 인스턴스에 배포 한 후에는 연결할 수있었습니다. – Moemars

    +1

    보안 그룹을 어떻게 수정 했습니까? 나는 같은 문제에 직면하고 있으며 나는 아마존 서비스에 새로운 사람이다. 감사합니다. – Sam

    +0

    @Sam 나는 또한 같은 문제에 직면하고 있으며 보안 그룹을 어떻게 수정했는지 관심이 있습니다. 나는 그들을 세계에 개방하려했지만 여전히 효과가 없다. – Phil

    답변

    8

    클라이언트가 초기화되지 않았습니다 : 로컬 컴퓨터를 통해 amazon 탄성 캐시 노드에 직접 연결할 수 없습니다. 사용자의 ec2 machiene을 통해서만 액세스 할 수 있습니다. 로컬 컴퓨터에서 telnet으로 연결할 수 있는지 확인하려면 연결되지 않습니다 나는 또한 같은 문제에서 suufered. 당신은 당신의 Ec2 기계에서 텔넷 수 있습니다. 그럼 ec2 기계에서 코드를 시도해도 작동합니다.

    +0

    로컬 인 spymemcache를 사용하고 있기 때문에 로컬에서 내 코드가 memcache에 액세스 할 수있는 것처럼이 예외없이 내 코드가 실행되어야합니다. –

    0

    memcache 서버에서 텔넷으로 연결을 확인하십시오. 목록에 없기 때문에 연결을 만들 수 없습니다. 내 서버를 memcache에 나열하여 문제를 해결했습니다.