我正在尝试使用以下代码从本地主机连接到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/

10-11 10:31