场景:
我们有一个流Java应用程序,该应用程序正在使用最新的DAX客户端实例通过DAX对DynamoDB执行读/写请求。在执行简单的集成测试和性能测试时,我们会间歇性地看到没有可用端点的异常情况。
com.amazonaws.AmazonClientException: Unable to call cluster endpoint: No endpoints available
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$ClusterReadRetryHandler.check(ClusterDaxClient.java:699)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.invoke(ClusterDaxClient.java:649)
....
IOException: No endpoints available
at com.amazon.dax.client.cluster.Cluster.readClient(Cluster.java:680)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$2.getClient(ClusterDaxClient.java:138)
at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.invoke(ClusterDaxClient.java:631)
... 23 more
为澄清起见,断断续续的意思是某些请求将成功,然后一些将失败,仅在单个测试(集成或性能)内使所有请求再次成功。实际上,大多数测试运行都会成功,但不会看到此错误,但是偶尔会如上一句话所述发生该错误。
DAX和DynamoDB的dev实例是固定的实例,这意味着运行这些测试不会重新基础结构/部署DAX或DynamoDB实例以获得干净的状态(它们在测试运行之间保留并运行)。 / p>
问题:
在使用DAX进行的小规模测试(例如,集成/端到端测试)或更大规模的测试(例如,性能测试)中,是否有其他人看到过这种间歇性行为的类似模式?我知道,这在其他票证上已经讨论过,以解决人们无法连接到DAX的情况,但是我没有发现识别这种间歇性行为的问题或情况。