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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将DynamoDB放入请求放入队列相关的知识,希望对你有一定的参考价值。

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

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

我的理解:

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

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

这是正确的工作流程吗?

答案

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

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

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

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

以上是关于如何将DynamoDB放入请求放入队列的主要内容,如果未能解决你的问题,请参考以下文章

CloudFormation 将项目放入 DynamoDB 表中

如何将相同的队列放入不同的多处理文件?

如何将现有的 dynamo db 与 AWS Amplify 和 graphql 一起使用

从 Parse 迁移到 AWS Dynamo DB

如何在 dynamoDB 中返回插入的项目

为啥将消息放入死信队列 (MSMQ)?