【问题标题】:Setting Up Amazon ElastiCache w/ spymemcached in Java使用 Java 中的 spymemcached 设置 Amazon ElastiCache
【发布时间】:2012-02-24 11:52:18
【问题描述】:

我还没有找到关于 Amazon Cloud 上的 Memcached 的好教程,而且我对整个缓存这件事还是很陌生。 我正在尝试通过 Amazon 的 ElastiCache 服务和 spymemcached 客户端使用 memcached 来实际进行 memcached 调用。

这是我现在在 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, topWop=net.spy.memcached.protocol.ascii.StoreOperationImpl@be8c3e, 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

有人对此有任何想法或经验吗? 谢谢!

【问题讨论】:

    标签: memcached amazon-web-services spymemcached amazon-elasticache


    【解决方案1】:

    你在哪里执行这个?从 EC2 实例中或从外部网络。请记住,ElastiCache 服务器受限制对 ElastiCAche 实例的访问的安全组的约束。因此,请检查允许您连接到 Memcached 服务器的安全组和其他配置。据我所知,无法从 AWS 边界外部访问 ElastiCache

    其余代码看起来不错,可以考虑使用像 Spring 这样的框架来处理 memcache 客户端对象实例化和相关配置。

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      相关资源
      最近更新 更多