在重试因 ProvisionedThroughputExceededException 而失败的请求时,标准 AmazonDynamoDBClient 是否使用指数退避?

joh*_*ell 5 amazon-dynamodb aws-sdk aws-java-sdk exponential-backoff

AmazonDynamoDBClient使用以下方法创建了一个标准AmazonDynamoDBClientBuilder

AmazonDynamoDBClient client = AmazonDynamoDBClientBuilder.standard().build();
Run Code Online (Sandbox Code Playgroud)

AmazonDynamoDBClient 的文档中,它提到:

ProvisionedThroughputExceededException- 您的请求率太高。适用于 DynamoDB 的 AWS 开发工具包会自动重试收到此异常的请求。您的请求最终会成功,除非您的重试队列太大而无法完成。减少请求频率并使用指数退避。

当重试由于 原因而失败的请求时,标准客户端是否默认使用指数退避ProvisionedThroughputExceededException?或者这是我需要手动配置的东西?

joh*_*ell 3

有关错误重试和指数退避的AWS 文档提到了这一点:

AWS 开发工具包实现自动重试逻辑和指数退避。

Java 的默认 DynamoDB 重试策略可以在源代码中找到:PredefinedRetryPolicies.java