ProvisionedThroughputExceededException
消息:已超过表或一个或更多全局二级索引的最大允许预置吞吐量。要查看预置吞吐量与占用吞吐量的性能指标,请打开 Amazon CloudWatch 控制台。
示例:您的请求速率过高。DynamoDB 的 AWS 开发工具包会自动对收到此异常的请求进行重试。除非您的重试队列太长以致无法完成,您的请求最终都会成功。请使用错误重试和指数退避降低请求频率,
OK to retry? 是
ProvisionedThroughputExceededException
Message: You exceeded your maximum allowed provisioned throughput for a table or for one or more global secondary indexes. To view performance metrics for provisioned throughput vs. consumed throughput, open the Amazon CloudWatch console.
Example: Your request rate is too high. The AWS SDKs for DynamoDB automatically retry requests that receive this exception. Your request is eventually successful, unless your retry queue is too large to finish. Reduce the frequency of requests using Error Retries and Exponential Backoff.
OK to retry? Yes
Error Retries and Exponential Backoff
Numerous components on a network, such as DNS servers, switches, load balancers, and others, can generate errors anywhere in the life of a given request. The usual technique for dealing with these error responses in a networked environment is to implement retries in the client application. This technique increases the reliability of the application.
Each AWS SDK implements retry logic automatically. You can modify the retry parameters to your needs. For example, consider a Java application that requires a fail-fast strategy, with no retries allowed in case of an error. With the AWS SDK for Java, you could use the ClientConfiguration
class and provide a maxErrorRetry
value of 0
to turn off the retries. For more information, see the AWS SDK documentation for your programming language.
If you‘re not using an AWS SDK, you should retry original requests that receive server errors (5xx). However, client errors (4xx, other than a ThrottlingException
or a ProvisionedThroughputExceededException
) indicate that you need to revise the request itself to correct the problem before trying again.