我们在从测试环境中的 Java 应用程序连接到 DAX 时遇到问题。 DAX 集群和配置在我们的测试环境的 cloudformation 模板中完成。
这些是跟踪中的错误:
[ERROR] DaxClient-39: caught exception during cluster refresh: java.io.IOException: failed to configure cluster endpoints from hosts
Suppressed: com.amazon.dax.client.exceptions.DaxServiceException: [X.X.XX.XX] Connection requires authentication (Service: null; Status Code: -1; Error Code: null; Request ID: null)
我们在开发环境中使用相同的模板,并且能够从该环境中的 ec2 实例连接到该环境中的 DAX。
我们已经使用以下方法验证了与集群的连接:
nc -z v-dax-test.3fxxxx.clustercfg.dax.usw2.cache.amazonaws.com 8111
可以运行
aws dax describe-clusters --r us-west-2
在尝试连接到 DAX 的 ec2 实例上并取回看起来正常的结果。
该实例正在使用 aws java sdk 和 dax 客户端库运行 java 应用程序。
我们已经验证 DAX 的安全组允许来自 ec2 实例所在安全组的 8111 的传入连接。
dax 子网组指定 ec2 实例所在的子网。
谁能告诉我这个错误是什么意思,以及如何解决它?
谢谢!
最佳答案
如果您在实例化 DAX ClientConfig 和访问 us-east-1(客户端默认区域)以外的区域中的 DAX 集群时未指定区域,则可能会发生这种情况。要指定区域,请尝试:
ClientConfig daxConfig = new ClientConfig()
.withEndpoints(daxEndpoint).withRegion("us-west-2");
AmazonDaxClient client = new ClusterDaxClient(daxConfig);
关于java - 在 AWS 中连接到 DAX 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48196580/