message-queue - 死信策略 - ActiveMQ Artemis
问题描述
我正在设计一种机制来处理消费者未收到消息时的消息。
我使用 ActiveMQ Artemis。我想以这样一种方式配置代理,即当消息多次传递失败时,它们会像本文档中那样转到 DLQ 。在尝试不成功后,消息将被扔到我自己的 DLQ 地址中,但我的问题出现了。
我希望在 5 分钟后将消息发送回初始队列。消息重定向并不是真正的问题,它在文档中有所提及。
但是我怎样才能将消息设置为延迟 5 分钟发送?我在本文档中看到有这种可能性,但它从应用程序级别得到支持,我想从broker.xml
.
解决方案
不支持您正在寻找的特定行为,我也不确定实际支持它是否有意义。如果发送到死信地址的消息只需要在 5 分钟后发送回原始地址,那么我建议您只需配置 5 分钟的重新发送延迟。
除此之外,您可以在您的死信队列上创建一个简单的侦听器,该侦听器使用任何消息,然后按照文档中的描述,按照预定的交付延迟将其发送回原始地址。
推荐阅读
- node.js - 处理多个确认提示
- c++ - 无法接收 WM_DEVICECHANGE 通知
- c# - 在 C# 中实现接口的通用方法时出现奇怪的错误。这里到底出了什么问题?
- javascript - 如何在 Chrome 扩展选项卡中隔离会话(cookie 和本地存储)
- node.js - 通过 Vultr 托管 Discord 机器人
- apache-kafka - 如何在运行时告诉 spring-kafka 消费者停止消费?
- flutter - 在颤动的堆栈中无法检测到对 IconButton 的点击
- ios - 无法将 __SwiftDeferredNSArray 转换为 NSMutableArray
- python - tkinter 使用 lambda 函数的多个按钮
- python - Open CV Contours - 将凹多边形拆分为多个凸多边形