SNS可以路由到多个SQS延迟队列之一吗?

时间:2014-05-15 17:17:36

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

这是飞行中的定义'来自AWS:

  

收到邮件后,邮件会在空中播出   由消耗组件排队,但尚未从中删除   队列。如果达到120,000限制,您将收到OverLimit   来自Amazon SQS的错误消息。为了帮助避免达到极限,你   应该删除队列中的消息   处理。您还可以增加用于的队列数   处理消息。

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

  

问:亚马逊SQS队列有多大?

     

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

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

如果你不混淆这两个问题,我提前道歉 - 如果是这样的话,你真的在​​谈论超过120K'机上'限制,我将删除我的帖子。

顺便说一句,找到了这个问题/答案,它会向你确认,因为邮件在延迟队列中,它们不在飞行中':

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

答案 1 :(得分:0)

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

可能会有所帮助的一些指示:

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

相关问题