我正在尝试使用以下代码从本地主机连接到DAX:
ClientConfig daxConfig = new ClientConfig()
.withEndpoints("dax-cluster.yhdqu5.clustercfg.dax.use1.cache.amazonaws.com:8111");
AmazonDaxClient client = new ClusterDaxClient(daxConfig);
群集已启动并正在运行,我已经在公共(public)子网中创建了该群集,并在安全组中打开了端口8111,但是尽管如此,我仍然收到以下异常消息:
Caused by: java.io.IOException: No endpoints available
at com.amazon.dax.client.cluster.Cluster.leaderClient(Cluster.java:560)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$3.getClient(ClusterDaxClient.java:154)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$RetryHandler.makeRequestWithRetries(ClusterDaxClient.java:632)
... 10 more
Suppressed: java.io.IOException: No endpoints available
... 13 more
Suppressed: java.io.IOException: No endpoints available
... 13 more
关于StackOverflow的其他答案表明,这可能是由于安全组配置不正确引起的,为了对其进行测试,我在同一VPC/子网中启动了一个实例,并使用了相同的安全组,因此我可以SSH到该主机(22和在安全组中打开了8111-st端口)。因此,应该有其他与DAX相关的原因。
我的机器上的防火墙已关闭。
但是,如果我在EC2中使用SSH,则可以连接到DAX群集:
[ec2-user@ip-10-0-0-44 ~]$ nc -z dax-cluster.yhdqu5.clustercfg.dax.use1.cache.amazonaws.com 8111
Connection to dax-cluster.yhdqu5.clustercfg.dax.use1.cache.amazonaws.com 8111 port [tcp/*] succeeded!
最佳答案
您只能从与DAX群集相同的VPC中的EC2计算机连接到DAX。除非您的本地主机是同一VPC中的EC2实例,否则它将无法连接到DAX群集。
关于amazon-dynamodb - Amazon DAX客户端抛出 "No endpoints available"异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46026610/