什么是死信队列?

在大多数情况下,死信队列(DLQ)的工作方式与普通消息队列相似。它会存储错误的消息,直到您对其进行处理以调查错误原因为止。

接下来,我们将讨论 DLQ 的再驱动策略,以及消息如何移入和移出 DLQ。

创建再驱动策略

软件通过参考再驱动策略,将消息移至死信队列。再驱动策略由很多规则组成,这些规则确定软件应何时将消息移至死信队列。再驱动策略主要通过定义最大重试次数来调节源队列与死信队列之间的交互方式。

例如,如果您的开发人员将最大重试次数设置为 1,则系统会在尝试 1 次后将所有未成功的传递移至 DLQ。某些传递失败可能是由临时网络过载或软件问题造成的。这会将很多未传递的消息发送到 DLQ。为了获得适当平衡,开发人员可以优化最大重试次数,以确保软件在将消息移至 DLQ 之前执行足够的重试次数。

将消息移入死信队列

发件人和接收器之间的传递尝试可能会由于多种原因而失败:

接收器无法接收消息,因为消息不存在。

消息包含错误。

消息超过队列或消息长度限制。例如,某些接收器无法处理超过特定大小的消息。

消息的生存时间(TTL)已过期。TTL 是一个值,表示特定数据包在网络上有效的时间长度。

将消息移出死信队列

当消息移入死信队列时,开发人员会检查错误的消息以确定原因。DLQ 中的消息可能包含宝贵见解,能够防止将来再次出现类似问题。在开发人员分析并修复问题后,系统会将这些消息移出 DLQ 并移入源队列。这将允许发件人继续处理这些消息。