【发布时间】:2014-03-14 06:17:38
【问题描述】:
我正试图澄清亚马逊的 SQS 死信队列到底在做什么。
根据http://aws.typepad.com/aws/2014/01/amazon-sqs-new-dead-letter-queue.html
Dead Letter Queue - SQS 队列的 ARN(Amazon 资源名称),将接收在消费者 receives 达到最大次数后未成功处理的消息。
这听起来不是更像毒药队列吗?关键区别在于消费者确实收到了消息。死信是指消息可能很好,但可能由于服务中断而无法传递。 http://www.eaipatterns.com/DeadLetterChannel.html
这听起来像是多次成功接收到消息,但处理消息失败,我理解这是毒消息队列的含义。
消息总线与队列
死信模式在普通旧队列的上下文中是否具有不同的含义?由于 SQS 只是一个队列,而不是消息总线,因此它不负责传递消息。相反,它等待消息被拾取(请求)。所以传统的死信模式并不真正适用,因为没有消息总线试图传递消息并且无法找到接收者。
SQS 可以像消息总线一样工作吗?
有没有办法通过 SQS 设置通道和侦听器,而不是显式轮询队列中的消息?
【问题讨论】:
-
这是一个支持工具。问:我的消息到底发生了什么? A:哦,它在死信队列中。
-
看起来他们的实现有些欠缺。所有这些都是对代码中糟糕的断言/输入检查的后备。我认为您可能希望对不良消息的处理方式更加谨慎。
标签: amazon-web-services message-queue amazon-sqs message-bus