我是云计算的新手,但有一个问题,我将要描述的机制是否存在或可以创建?
Dynamodb 已配置吞吐量(例如 100 次写入/秒)。当然,在现实世界的应用程序中,实际吞吐量是非常动态的,几乎永远不会是您配置的 100 次写入/秒。我在想 dynamodb 的某种类型的队列会很棒。例如,我的 dynamodb 在高峰时段可能每秒收到 500 个写入请求(我分配的数量的 5 倍),并且会返回错误。我是否可以在客户端和数据库之间放置一些队列,以便客户端请求进入队列,客户端确认其请求已被处理,然后队列以 100 的速率将请求吐出到 dynamodb / 每秒精确写入,这样就不会返回错误,并且我不需要提高吞吐量,这会增加我的成本?
将 AWS SQS 放在 DynamoDB 前面可以为您解决这个问题,并且这并不是一种不常见的设计模式。 SQS 已经非常适合根据需要进行扩展,并以不可预测的流模式摄取大量消息。
您可以首先将所有消息放入 SQS,或者在超出 DynamoDB 数据库的设计吞吐量时使用 SQS 作为溢出缓冲区。
然后,一个或多个工作实例可以从 SQS 队列读取消息,并按照您决定的速度将它们放入 DynamoDB。
如果消息传入的顺序极其重要,Kinesis 是您提取传入消息的另一种选择,然后按照您定义的速度将它们按照到达的顺序插入到 DynamoDB 中。
在我看来,SQS 会更容易使用,但如果您的需求更复杂,Kineses 将为您提供更大的灵活性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)