我们计划使用SQS标准队列进行消息传递。消息是一堆记录,需要在消费者端按顺序接收。由于某些原因,我们计划不使用FIFO队列。
鉴于此,我们正在评估对SQS扩展库的支持,以使用S3来存储消息有效负载。我们会将所有链接的记录合并为一条消息,并将其作为一个请求发布到SQS。我有几个问题
答案 0 :(得分:1)
S3会引入额外的延迟(在队列的每个末端),这取决于有效负载大小,消息发布者/使用者是在AWS还是在其他地方托管,以及单个服务器实例可使用的带宽。 (袖手旁观,对于1 MB的有效负载,我猜想是200毫秒以上。)这笔费用微不足道,特别是如果您设置了适当的存储桶生命周期策略以存档或删除旧数据。别忘了S3在最初创建时就非常一致,但是只有在最终对对象进行任何更新时才保持一致。如果可能的话,创建对象后就不要对其进行更新。
我没有任何真实的例子,但如果有找到,我会告诉您。
您可能会发现,使用某种数据库可以更轻松地实现所需的内容,就像您链接的文章中所建议的那样(这解释了FIFO队列的局限性)。寻找过早的优化,确保您的决定没有偏见。