ActiveMQ Broker下来。生产者异步发送消息。如何为Producer发送的消息执行重新传递?如何使用死信队列

时间:2018-02-07 21:34:07

标签: java spring activemq messaging

我有一个我的ActiveMQ代理已关闭的场景。我的生产者正在尝试以异步方式(connectionfactory.setUseAsyncSend(true))向此代理发送消息。由于经纪人关闭,没有消息到达经纪人。我想对此失败的消息执行重新传递,如果进行了固定数量的重新传递尝试,则将它们放入死信队列。如果可能,在代理启动后从deadletter队列发送这些消息。 我正在使用JMSTemplate发送消息,代码是用Java编写的。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您的经纪人关闭,您将无法写入DLQ,因为它也位于经纪人身上!

您最好的选择是正确处理此故障情况,并在您的运行状况检查认为代理已备份之前进行适当的停止。 docs并不是那么清楚,但是当你可以容忍一些消息丢失时,异步发送似乎是理想的。它可能是异步发送,如果出现问题,最初不会给你Exception,所以如果你不能容忍消息丢失,你可能需要使用同步。