我正在寻找一种创造性的、最有效的方法来将写突发扁平化到dynamodb。
我有4个cron作业,每3分钟运行一次。每个作业都在自己的线程上。由于我无法控制它们同时启动的原因。工作的一部分是向dynamodb写入1000行。使用批处理写入,这通常需要10到30秒。
由于时间的关系,这4个作业并行地进行写入。
我正在寻找一种最有效的方式来随着时间的推移分发写操作。
我不想添加不必要的资源。该解决方案可能包括某种缓存和额外的cron作业。
我有可用的内存缓存。然而,可能还有比写入memcache和读取更有效的方法。也许是服务器上的日志文件?
你会怎么做?
它在ububtu上使用php和apache。
一个既定的模式,特别是如果您最终只需要写入,就是先将记录放入SQS队列,并有一个后台任务,从SQS读取消息,并将它们放入dynamodb和最大指定速率中——当您不想为高写入吞吐量付费以匹配对数据库的写入峰值时,这很有用。
SQS的好处是能够接受几乎任何规模的消息,但您可以通过以低、可预测的速度写入行来降低dynamodb的成本。