如何避免消息落入死信队列?
How to avoid a message landing in a dead letter queue?
如何设计一个应用程序,使消息尽可能避免死信队列。
根据维基百科文档,以下是将消息发送至 dead letter queue
的原因
- 发送到不存在的队列的消息。
- 超出队列长度限制。
- 超过消息长度限制。
- 消息被另一个队列交换拒绝。
- 消息达到阈值读取计数器数,因为它没有被消费。有时这称为 "back out queue".
我们将能够设计避免已知原因的系统。但是如何让系统应对未知的场景。我不是在寻找任何特定于供应商的解决方案,而是在寻找一般的设计指南或建议。
答案是“你不会”。过度设计只会让你陷入麻烦。
接受消息最终会失败并最终进入 dead/poison 队列这一事实,您需要您的监控系统挑选这些消息并通知可以调查和解决问题的人员。
您可以在监控后端设计和实现功能,让您的团队检查、编辑和重放这些消息。
如何设计一个应用程序,使消息尽可能避免死信队列。
根据维基百科文档,以下是将消息发送至 dead letter queue
的原因- 发送到不存在的队列的消息。
- 超出队列长度限制。
- 超过消息长度限制。
- 消息被另一个队列交换拒绝。
- 消息达到阈值读取计数器数,因为它没有被消费。有时这称为 "back out queue".
我们将能够设计避免已知原因的系统。但是如何让系统应对未知的场景。我不是在寻找任何特定于供应商的解决方案,而是在寻找一般的设计指南或建议。
答案是“你不会”。过度设计只会让你陷入麻烦。
接受消息最终会失败并最终进入 dead/poison 队列这一事实,您需要您的监控系统挑选这些消息并通知可以调查和解决问题的人员。
您可以在监控后端设计和实现功能,让您的团队检查、编辑和重放这些消息。