【问题标题】:How To Put DynamoDB Put Requests In A Queue如何将 DynamoDB 将请求放入队列
【发布时间】:2018-08-12 10:36:35
【问题描述】:

我看到很多人提到,在 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】:

    您可能会使用 Redis。特别是如果您一遍又一遍地插入同一个分区(称为“热分区”),Redis 提供了从一组中随机选择的功能。只需将它们排队(插入)到 Redis 中并不断从另一个进程中读取并插入到数据库中。在 Nodejs 和 Python 上,redis 有数千个示例,使用起来非常方便:)

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

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

    可能有更多方法可以实现您想要的,甚至可能以更简单的方式实现,但 Redis 几乎可以满足所有需求,也许您甚至已经在使用它;)

    【讨论】:

    • 感谢您为我提供框架,我将改用 Redis 并查看 AWS 博客。
    猜你喜欢
    • 2023-04-04
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 2022-01-25
    相关资源
    最近更新 更多