我们在Java中使用memcached。我们的环境运行在OpenShift Online(PaaS)上,我们目前有一个“齿轮”运行我们的后端java应用程序和一个“齿轮”运行memcached。
由于它会更便宜,我们希望迁移到AWS ElastiCache - 但不会更改我们当前的memcached客户端,即xmemcached。但是我们如何处理身份验证呢?我尝试了[访问密钥ID] / [秘密访问密钥]:
MemcachedClient memcachedClient;
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses([aws node endpoint]));
builder.setCommandFactory(new BinaryCommandFactory());
builder.addAuthInfo(AddrUtil.getOneAddress([aws node endpoint]), AuthInfo.plain([Access Key ID], [Secret Access Key]));
memcachedClient = builder.build();
没有成功。我总是例外:
net.rubyeye.xmemcached.exception.MemcachedException: There is no available connection at this moment
如果我根本不进行身份验证,我会得到同样的例外。
我知道使用AWS客户端会更好;但由于我们实际上只使用一个节点,因此我们不需要自动发现。关键是我们确实有一些其他的memcached服务器,例如在测试/本地环境中,aws客户端可能不支持(或者我错了?)。