SQS - 为什么限制最大消息大小?

4

在AWS SQS中,为什么我需要将最大消息大小设置为低于最大限制?我找不到任何好的理由...

enter image description here


1
限制速率总是有很好的理由的,这就是它的作用。你现在正在查看的网站上的所有内容都受到了速率限制,我是说所有的内容。 - Robert Harvey
只要您的系统永远不会出现漏洞且不暴露于互联网,那么您可能就没问题了……但是很难看到至少后一种情况适用于亚马逊的服务。否则,请考虑单个1Tb消息消耗所有其他限制的情况……(列出非速率限制服务的所有可能问题对于SO来说太广泛了) - Alexei Levenkov
6
在像SQS这样的SaaS服务中,系统很可能根据您的消息设置的最大有效负载进行扩展。此外,SQS将64kb的块视为一个请求(例如:256kb的消息将被计费为4个请求),因此限制有效负载还可以更加精细地控制/估算您的计费。现在,预分配存储空间正在变得越来越不常见(malloc有人用吗?)。 - John
感谢大家的好评! - Amio.io
我想确认一下,如果我们将最大消息大小设置为256KB,但我的请求大小不到64KB,那么我会被收取1个请求还是4个请求的费用?@John - truongnm
@truongnm,根据https://aws.amazon.com/sqs/pricing/?nc1=h_ls的理解,如果有效载荷小于64KB,则每个请求将收取费用。在文档中,他们说:“例如,具有256 KB有效载荷的API操作将计费为4个请求”。他们谈论的是“操作”,而不是队列配置,因此我得出结论:有效载荷大小决定了您将被收取多少费用。 - Yanal-Yves Fargialla
1个回答

1
SQS提供了许多优点,如批量消息发送、延迟消息、轮询等。因此,既然我们拥有了所有这些优点,它们肯定需要限制其大小。但我们是如何处理的呢,
  • 我们检查消息大小,如果消息大小超过256kb,则将消息上传到S3,并使用唯一ID作为文件名,在队列中共享消息,格式为{largeFile:true,id:(s3文件名)},现在消费者检查largeFile是否为true,如果是,则从S3获取并处理数据,简单 :)

  • 或者,如果您只想使用队列,请选择其他消息代理,如RabbitMQ,其中没有任何大小限制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接