我试图澄清亚马逊的 SQS 死信队列到底在做什么。
根据http://aws.typepad.com/aws/2014/01/amazon-sqs-new-dead-letter-queue.html
Dead Letter Queue - The ARN (Amazon Resource Name) of an SQS queue that will receive the messages which were not successfully processed after maximum number of receives by consumers.
这听起来不是更像毒药队列吗?关键区别在于消费者确实收到了消息。死信是指消息可能很好,但可能由于服务中断而无法传递。 http://www.eaipatterns.com/DeadLetterChannel.html
这听起来像是多次成功接收消息,但处理消息失败,我理解这是毒消息队列的含义。
消息总线与队列
死信模式在普通旧队列的上下文中是否具有不同的含义?由于 SQS 只是一个队列,而不是消息总线,因此它不负责传递消息。相反,它等待消息被拾取(请求)。所以传统的死信模式并不真正适用,因为没有消息总线试图传递消息并且无法找到接收者。
SQS 可以像消息总线一样工作吗?
有没有办法通过 SQS 设置 channel 和监听器,而不是显式轮询队列中的消息?
最佳答案
在大多数情况下,我不确定 DLQ
之间的区别。和 PQ
是必要的。事实上,我发现这个定义相当武断。对于大多数事务性消息传递实现,如果消息在指定的重试次数内没有成功从队列中消耗掉,它将转到 DLQ
。 .为格式错误的消息设置一个单独的队列意味着您现在只有两个位置来查找未成功处理的消息,两个异常队列用于监控或操作注意事项,以及一些看起来可能属于其中一个的消息百分比队列(想到批处理场景)。
关于amazon-web-services - Amazon SQS 死信队列 : Is it really dead letter or poison?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21786951/