DynamoDB节stream

我有一个5读和5写能力dynamo表。 在这张表中,我有两个logging。

然后,我决定通过一次推送大量的写入(一次突发中的大约4000条logging)来查看我会得到什么样的错误响应。 蓝色“消耗”线直接射过红色“容量”线,但是我没有得到任何types的错误信息。

指标显示节stream发生,但我仍然发生读取,如果我超过两个容量水平,我的写道仍然发生。

我已经花了超过30分钟的时间推动阅读和写入远高于容量,没有任何错误。

我不确定这是因为我在节点js中使用官方javascript SDK,可能透明地处理调节并重试受限制的查询?

我希望有人能给我一些指导。

谢谢

只是想要通过@Luc Hendriks添加关于限制的通知

即使在“爆发容量”不足之后,DynamoDb开始进行限制,您也将很难得到ProvisionedThroughputExceededException(根据我的经验)。 这是因为SDK默默地重试了节制的请求(所以你是对的,SDK透明地处理节stream)。

您可以使用maxRetries参数来禁用自动重试,以便在看到指标中的限制后立即获得ProvisionedThroughputExceededException。

以下是如何执行更新请求而不自动重试的示例:

var aws_dynamodb = new aws.DynamoDB({maxRetries: 0}), aws_dynamodb_doc = new aws.DynamoDB.DocumentClient({service: aws_dynamodb}); // ... aws_dynamodb_doc.update(params, function(err, data) { // ... }); 

这是因为爆发能力。 您可以在AWS文档中阅读更多相关信息: http : //docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html#GuidelinesForTables.Bursting

基本上这意味着你可以有高达300秒的“存储容量”,当你的负载达到峰值时,将它用作池。 在你的情况下,这将是1500个请求的池,你可以立即使用,并在容量未使用时再次重新填充。