如何缩放DynamoDB记录处理?

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

我正在使用DynamoDB和Lambda构建基于Web的CRON服务。尽管我目前没有以下问题,但我很好奇如果出现问题该如何解决。

体系结构是这样的:

  1. Lambda A-查询当前应执行的所有任务
  2. Lambda A-对于每个任务,在文档上增加一个计数器
  3. Lambda B-监听每个文档的流事件并运行实际的CRON任务

据我所知,Lambda B应该具有可伸缩性-AWS应该运行所需数量的实例来处理所有流事件(我认为)。

但是对于Lambda A,说我有10亿个文档需要每分钟处理。

当我查询每分钟的任务时,Lambda将需要发出多个请求才能获取和更新所有文档。

我如何设计系统,以使所有文档在60秒内得到处理?

aws-lambda amazon-dynamodb scaling
1个回答
0
投票

我不确定您的项目,但您的要求似乎已经在AWS DynamoDb Documentation中,请阅读此处:

[在Amazon DynamoDB中创建新的预配置表时,您必须指定其预配置的吞吐量。这是表可以支持的读写活动。 DynamoDB使用此信息以保留足够的系统资源以满足您的需求吞吐量要求。

您可以创建一个on-demand mode表,这样您就不必管理服务器,存储或吞吐量的任何容量设置。DynamoDB在工作负载增加或减少时可以立即容纳您的工作负载到之前达到的流量水平。如果工作负载的流量水平达到了一个新的高峰,DynamoDB迅速适应了工作负载。有关更多信息

您可以选择允许DynamoDB auto scaling管理表的吞吐能力。但是,您仍然必须提供初始设置创建表时的读写容量。 DynamoDB自动缩放使用这些初始设置作为起点,然后根据您的应用程序的动态调整它们要求

随着您的应用程序数据和访问要求发生变化,需要调整表的吞吐量设置。如果您正在使用DynamoDB自动缩放,吞吐量设置自动根据实际工作量进行了调整。您也可以使用UpdateTable操作可手动调整表的吞吐量容量。如果您需要批量加载数据,则可以决定执行此操作从现有数据存储到新的DynamoDB表中。你可以创建具有较大的写吞吐量设置的表,然后减少批量数据加载完成后,此设置。

您以容量单位指定吞吐量要求-您的应用程序每秒需要读取或写入的数据量。您可以在以后根据需要修改这些设置,或启用DynamoDB auto缩放以自动修改它们。

我希望这可以帮助您解决疑问。

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