如何将DynamoDB放入请求放入队列

问题描述 投票:1回答:1

我看到很多人都提到,在DynamoDB中处理有限WCU的一种方法是在队列中发送请求,让队列以不会超过你分配的WCU的方式将数据插入到dynamodb中。

有没有人有这方面的例子?我目前正在使用python和nodeJS中的aws lambda。

我的理解:

如果lambda想要将2,000个项目放入dynamodb并且我们只有100个WCU,而不是在每个请求之间进行lambda重试和/或等待。

我们可以将项目发送到SQS队列,然后以每秒100WCU的速率输入项目。

这是正确的工作流程吗?

amazon-web-services aws-lambda amazon-dynamodb amazon-sqs amazon-sns
1个回答
1
投票

你可以使用Redis。特别是如果你一遍又一遍地插入同一个分区(称为“热分区”),Redis会从一个集合中提供随机选择。只需将它们排队(插入)到Redis中并不断地从另一个进程读取并插入到db中。关于Nodejs和Python redis有成千上万的例子,非常方便使用:)

缓存中有一个AWS Blog条目。看看它。还推荐这种模式。

虽然缓存的用例数量正在增加,特别是对于Redis,但主要的工作负载是支持读取繁重的重复读取工作负载。此外,开发人员还使用Redis来更好地吸收写入中的峰值。其中一种比较流行的模式是直接写入Redis,然后异步调用单独的工作流将数据转移到单独的数据存储(例如,DynamoDB)。

可能有更多的方法可以实现你想要的东西,甚至可以用更简单的方式,但Redis可以使用它,甚至你甚至可以使用它;)

© www.soinside.com 2019 - 2024. All rights reserved.