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

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

SQS有delay queues这可能会在消息传递之前增加延迟。然而,“飞行中”消息的总数上限为 120,000 条。该文档建议当客户端收到 OverLimit 错误时回退到另一个队列。

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

最佳答案

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

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

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

Messages are inflight after they have been received from the queue by a consuming component, but have not yet been deleted from the queue. If you reach the 120,000 limit, you will receive an OverLimit error message from Amazon SQS. To help avoid reaching the limit, you should delete the messages from the queue after they have been processed. You can also increase the number of queues you use to process the messages.

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

Q: How big can Amazon SQS queues be?

A: A single queue may contain an unlimited number of messages, and you can create an unlimited number of queues.

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

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

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

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

关于amazon-web-services - SNS 可以路由到多个 SQS 延迟队列之一吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23684808/

相关文章:

amazon-ec2 - Amazon EC2 AutoScaling CPUUtilization 警报 - 数据不足

amazon-web-services - 在 AWS Lambda 实例之间协调单例 token

apache - 面向 SaaS 产品客户的自定义域功能

c - 如何在带有 GCC 的 C 程序中的函数之间暂停?

ios - 在不阻塞 UI 的情况下在 For 循环中添加延迟

java - 为什么选择 JMS 作为异步解决方案?为什么它比简单的实体 bean 更好?

java - 使用 Lambda 代理集成通过 API Gateway 从 AWS Lambda 抛出错误

networking - 如何获得ffmpeg的延迟?

c - 这是实现没有互斥量的异步消息队列的安全方法吗?

c - 在多线程服务器中使用 Pthread