Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发电机节流_Javascript_Node.js_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Javascript 发电机节流

Javascript 发电机节流,javascript,node.js,amazon-web-services,amazon-dynamodb,Javascript,Node.js,Amazon Web Services,Amazon Dynamodb,我有一个5读5写的发电机表。在这张表中,我有两条记录 然后,我决定通过一次执行大量写入操作(一次突发大约4000条记录),看看会得到什么样的错误响应。蓝色的“消耗”线直接越过红色的“容量”线,但是我没有收到任何类型的错误消息 指标显示发生了节流,但如果超过两个容量级别,则仍会发生读取和写入 我花了超过30分钟的时间将读写操作推到远远超过容量的位置,还没有出现错误 我不确定这是否是因为我在node js中使用了官方的javascript SDK,它可能会透明地处理节流并重试节流查询 我希望有人能在

我有一个5读5写的发电机表。在这张表中,我有两条记录

然后,我决定通过一次执行大量写入操作(一次突发大约4000条记录),看看会得到什么样的错误响应。蓝色的“消耗”线直接越过红色的“容量”线,但是我没有收到任何类型的错误消息

指标显示发生了节流,但如果超过两个容量级别,则仍会发生读取和写入

我花了超过30分钟的时间将读写操作推到远远超过容量的位置,还没有出现错误

我不确定这是否是因为我在node js中使用了官方的javascript SDK,它可能会透明地处理节流并重试节流查询

我希望有人能在这方面给我一些指导


谢谢

这是因为突发容量。您可以在AWS文档中了解更多信息:


基本上它的意思是,你可以拥有300秒的“存储容量”,当你的负载达到峰值时,可以将其用作一个池。在您的情况下,这将是一个包含1500个请求的池,您可以立即使用该池,并在容量未使用时重新填充

只是想在@Luc Hendriks的回答中添加一个关于节流的通知

即使在您的“突发容量”用完并且DynamoDb开始节流之后,您也很少会通过PutteExceedexception获得供应(根据我的经验)。这是因为SDK以静默方式重试限制请求(所以您是对的,SDK透明地处理限制)

您可以使用参数禁用自动重试,以便在看到度量中的限制后立即通过PutExceedeDexception获得ProvisionedThroughtThroughtThroughPutExceedexception

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

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) {
  // ...
});