DynamoDB写入峰值替代方案

Sol*_*olo 1 amazon-web-services amazon-dynamodb

我有以下情况:

  1. 项目被添加到DynamoDB表(触发Lambda函数)
  2. Lambda函数检查谁订阅了这个特定项目
  3. Lambda函数将"用户通知"保存到另一个DynamoDB表

例:

  • 用户订阅(1)白色(2)(3) (三个属性)
  • 项目被添加到DynamoDB表中,它恰好是白色的小猫
  • 保存通知,以便在用户登录时向用户显示

DynamoDB很棒,但我发现了一个潜在的问题:如果有相同项目的数千个订阅者,Lambda函数必须向表中写入数千个"通知".DynamoDB不适合尖峰.

没有这个,我的正常写入吞吐量只有10-20,1000写入吞吐量成本超过500美元.这些写入峰值会立即阻塞DynamoDB,或者花费数千美元浪费.

---

如何解决这个问题?我想不出任何合适的AWS服务或合理的DynamoDB黑客攻击.

jar*_*mod 5

将编写器与DynamoDB分离.

您可以将"写入请求"推送到SQS,然后让消费者进程以合理的速率从SQS中删除项目,然后将它们写入DynamoDB,而不是直接写入DynamoDB.这样做可以让您最大限度地使用DynamoDB预配置吞吐量,无论配置级别是什么.

这是一个电视节目投票示例(视频,幻灯片).