6

Amazonの新しいMemcachedクライアントをAutoDiscoveryでテストしようとしています。私はXMemcached 1.3.5と標準のSpyMemcachedライブラリを使って接続できるmemcachedノードを1つ持っています。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"); 

私は接続を作成するとき、私はログに以下を参照してください。私は値を設定しようとすると、エラーが起こる:

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) 
  • 私は私が試した
  • (Iノードに他のライブラリを使用して接続することができます)の両方のローカルおよびEC2インスタンス上でこれを試してみました私はちょうどケース

設定エンドポイントがタイムアウトされるだろう、なぜ上の任意の考えでは、同様のセキュリティグループの制約を緩和し、両方の1.4.5と1.4.14 Memcachedのエンジン

  • を使用していますか?

  • +3

    私自身の問題に対する解決策を見つけました。私のセキュリティグループが正しく設定されていないように見えます。セキュリティグループを修正し、私のコードをEC2インスタンスにデプロイすると、接続できました。 – Moemars

    +1

    セキュリティグループの修正方法を追加してください。私は同じ問題に直面しており、私はアマゾンのサービスに新しいです。ありがとうございました – Sam

    +0

    @Sam私も同じ問題に直面しており、セキュリティグループの修正方法に興味があります。私はそれらを世界に開放しようとしましたが、それでも動作しません – Phil

    答えて

    8

    クライアントが初期化されていません: ローカルマシンからamazonエラスティックキャッシュノードに直接接続することはできません。あなたのec2マシーンからのみアクセスできます。ローカルマシンからtelnetで接続できるか確認したい場合は接続しません私も同じ問題からsuufered。あなたはあなたのEc2マシンからtelnetすることができます。それは動作するec2マシンであなたのコードを試してください。

    +0

    ローカルのspymemcacheを使用していますので、ローカルのコードと同じようにこのコードを実行すると、自分のコードがmemcacheにアクセスできます。 –

    0

    接続を確認するためにmemcacheサーバーのtelnetを実行します。リストにない場合、接続できませんでした。 memcacheにサーバーをリストすることで問題が解決しました。

    関連する問題