Azure Service Bus 死信队列产生的原因
服务总线中有几个活动会导致从消息引擎本身将消息推送到 DLQ。 如
- 超过 MaxDeliveryCount
- 超过 TimeToLive
- 处理订阅规则时的错误
- 应用程序主动设置信息进入死信队列
进入死信队列(DLQ)里面的数据 不会自动执行清理操作。 消息将保留在 DLQ 中,直到显式从 DLQ 中检索它们以及对死信消息调用 Complete() 为止。可以使用Service Bus Explorer工具来查看死信队列中消息
死信问题:
一: 队列中存在死信需求如何处理,让这个队列恢复正常
死信是由于客户端无法正常消费消息产生的,Service Bus会将这些无法正常消费的消息移动到另外的死信队列中,这个是不会影响原有队列的消息的消费和使用。
二: 队列中出现死信后是否可以重新发送消息
死信是已经发送到service bus但消费端无法正常消费的消息,这不影响再次向队列发送消息。
参考资料
服务总线死信队列概述:https://docs.azure.cn/zh-cn/service-bus-messaging/service-bus-dead-letter-queues