sar*_*ath 5 message-queue amazon-sqs amazon-web-services
在 SQS 中,对于单个消息,可以在队列的最大保留期限内放置的ReceiveMessage请求的最大数量是多少?
我搜索了很多,但找不到 Max Cap 的任何数字。
是无限的吗?
消息生命周期的文档中没有提到限制,只是当队列的最大消息保留时间(默认4天,最大14天)到期时,消息将被删除。
在那之前它看起来基本上是无限的,除非您将队列配置为在可配置的最大接收数之后将消息移动到单独的“死信队列”......在这种情况下,允许的最大接收数 -包括在控制台中查看队列消息时特定消息弹出的次数 - 为 1000。(当然,最小值为 1)。
似乎没有关于可以接收消息的最大次数的记录限制,否则,但还有另一个限制会限制重复接收消息且其可见性超时重复允许过期的队列(导致它们再次恢复可见)——每个队列都支持队列中无限数量的消息,但每个队列在任何时间最多只能有 120,000 条正在传输的消息(等待其可见性超时到期)。
否则,给定消息的最大接收数量似乎仅受最大消息保留时间乘以可见性超时的限制。如果默认值为 4 天 30 秒,则为 4 × 24 × 60 × (60 ÷ 30) = 11,520。
在行为良好的应用程序中,您通常不希望消息被接收数百或数千次,但在有错误的应用程序中,您不希望在发现问题之前丢失消息,因此我做出的假设除非可以证明并非如此,否则不存在硬性限制。
如果您想以某种方式处理值超过特定阈值的消息,您的代码还可以检查属性的值,以了解消息已传递的ApproximateReceiveCount
次数。该计数器确实包括在控制台中的“查看消息”中枚举消息的次数,因为控制台接收消息然后重置其可见性超时,就像应用程序一样。
如果要使用此值,请注意 SQS 消息同时具有“属性”(系统)和“消息属性”(用户定义)。
归档时间: |
|
查看次数: |
6727 次 |
最近记录: |