我正在使用AWS SDK for Javascript(Node.js)从DynamoDB表中读取数据.自动缩放功能在大多数时间内都能很好地工作,并且消耗的读取容量单位(RCU)在一天中的大部分时间都非常低.但是,有一个编程的作业在午夜左右执行,耗费约为配置RCU的10倍,并且由于自动缩放需要一些时间来调整容量,因此存在大量限制读取请求.此外,我怀疑我的请求没有完成(虽然我在错误日志中找不到任何异常).
为了处理这种情况,我考虑使用AWS API(updateTable)增加配置的RCU,但计算我的应用程序所需的RCU数量可能并不简单.
所以我的第二个猜测是重试失败的请求,只是等待自动扩展配置的RCU.正如AWS文档和一些Stack Overflow答案所指出的那样(特别是关于ProvisionedThroughputExceededException):
适用于Amazon DynamoDB的AWS开发工具包会自动重试接收此异常的请求.因此,您的请求最终会成功,除非请求太大或您的重试队列太大而无法完成.
我已经阅读了类似的问题(这一个,这一个和这一个),但我仍然感到困惑:如果请求太大或重试队列太大而无法完成(因此在自动重试之后)或实际上在重试之前?
最重要的是:我应该在我的背景下期待的例外吗?(所以我可以抓住它并重试直到自动缩放增加RCU?)