Azure SB 队列将消息发送到禁用的死信队列

Posted

技术标签:

【中文标题】Azure SB 队列将消息发送到禁用的死信队列【英文标题】:Azure SB queues sends messages to disabled dead letter queue 【发布时间】:2014-08-30 03:11:35 【问题描述】:

为什么我的 Azure 服务总线队列在未启用时会向死信子队列发送消息?

从一开始我就确保过期的消息不会被移到死信队列中(或者我是这么认为的)。

在 Visual Studio Server Explorer 中,我在队列下看到了这个:

EnableDeadLetteringOnMessageExpiration: False

但我也看到了这个:

DeadLetterMessageCount:16

我不能像往常一样把它们拉出来,所以我创建了一个临时服务来处理(摆脱)这些,这就是我能够从 brokeredMessage.Properties 中提取的内容:

DeadLetterReason: MaxDeliveryCountExceeded DeadLetterErrorDescription:10 次传递尝试后无法使用消息。

我希望消息在未完成时留在正常队列中。到目前为止,我已将 MaxDeliveryCount 更改为 1000,但这不是一个真正的解决方案。

我忽略了什么?

更新 在阅读我自己的文本后,我意识到 EnableDeadLetteringOnMessageExpiration 与传递计数无关。 我是否可以选择让我的消息永远留在正常队列中?还是我必须将 MaxDeliveryCount 设置为“足够高”?

【问题讨论】:

【参考方案1】:

我有同样的问题。如果邮件到达MaxDeliveryCount,即使您禁用它,它们也会被移至死信。您可能需要将 MaxDeliveryCount 设置为 0int.MaxValue 以停止死信。

注意:此信息未在任何地方记录。我通过找到专门从事 ServiceBus Queue 工作的人来解决这个问题。

【讨论】:

以上是关于Azure SB 队列将消息发送到禁用的死信队列的主要内容,如果未能解决你的问题,请参考以下文章

从死信队列重新提交消息 - Azure 服务总线

正确计算发送到死信 SQS 队列的消息数

Azure 服务总线中的死信队列中的消息是不是过期?

消息队列 - 死信、延迟、重试队列

如何删除 Azure 服务总线主题上的死信消息

GCP - 如何添加关于发送到 pubsub 死信队列的消息数量的警报?