【问题标题】:Can SNS route to one of multiple SQS delay queues?SNS 可以路由到多个 SQS 延迟队列之一吗?
【发布时间】:2014-07-04 06:55:29
【问题描述】:

SQS 有delay queues,可以在消息传递之前添加延迟。但是,他们对“飞行中”消息的总数设置了 120,000 条上限。当客户端收到 OverLimit 错误时,文档建议回退到另一个队列。

有没有办法通过客户端发布到连接到多个 SQS 延迟队列的单个 SNS 主题来自动回退到另一个队列?我的意思是,消息通常会从 SNS 推送到具有可用“正在运行”容量的 SQS 队列之一。

【问题讨论】:

    标签: amazon-web-services delay message-queue amazon-sqs amazon-sns


    【解决方案1】:

    在这种情况下,使用 SNS 没有帮助,因为发布到 SNS 主题的消息副本将被传送到每个 SQS 订阅。

    一些可能有帮助的建议:

    另外,请确保您了解 @E.J. 中指出的差异。布伦南回答。

    【讨论】:

    • 感谢您的回答。我的问题背后的意图是托管解决方案,所以骆驼不会这样做。该问题旨在根据 sqs 文档的建议自动路由到多个 sqs 队列,以使用多个队列来绕过“飞行中”限制。
    【解决方案2】:

    您是否真的担心超过 120,000 条“飞行中”消息,或者您可能会将其与最大队列大小混淆? (其中没有)。

    队列中可以拥有的消息数量没有限制,120,000 条限制与队列中消费者请求使用消息但尚未处理/删除的消息数量有关?

    这是 AWS 对“飞行中”的定义:

    消息在从 由消费组件排队,但尚未从 队列。如果您达到 120,000 的限制,您将收到 OverLimit 来自 Amazon SQS 的错误消息。为了帮助避免达到限制,您 应该在它们被删除后从队列中删除消息 处理。您还可以增加使用的队列数 处理消息。

    这是一个确认队列大小本身没有限制的链接:

    问:Amazon SQS 队列可以有多大?

    答:单个队列可能包含无限数量的消息,而您 可以创建无限数量的队列。

    http://aws.amazon.com/sqs/faqs/#How_big_can_Amazon_SQS_queues_be

    如果您没有混淆这两个问题,我提前道歉 - 如果是这样,并且您确实在谈论超过 120K 的“飞行”限制,我将删除我的帖子。

    顺便说一句,找到了这个问题/答案,它将为您确认,仅仅因为一条消息在延迟队列中,它们就不是“在飞行中”:

    Do Delay Queue messages count as "In Flight" in SQS?

    【讨论】:

    • 感谢您的回答,但我只关心“飞行中”而不仅仅是队列大小。
    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 2021-11-14
    • 2021-10-15
    • 2018-08-16
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    相关资源
    最近更新 更多