主动mq延迟恢复

时间:2016-05-19 04:05:30

标签: activemq apache-storm

我试图将ActiveMQ队列用作Apache Storm Spout。

我使用" INDIVIDUAL_ACK"策略。

在我的想法中,我计划定期触发session.recover(),重新发送无法确认的消息(Bolt处理链中的错误)。

但是如果我这样做,那么当前处理的所有与Storm元组相对应的消息将被重新发送。我会试着限制这种现象。

理想情况下,我想参数延迟,所有发送的消息都更年轻,不应重新发送此延迟(此延迟也应与Storm元组处理的超时同步)

我已经阅读了有关AMQ政策(http://activemq.apache.org/redelivery-policy.html)但我不确定redeliveryDelay参数是否适用于我的问题。

任何提示?

弗兰克

1 个答案:

答案 0 :(得分:0)

使用INDIVIDUAL_ACKNOWLEDGE你不会使用session.recover(),你会做一个message.acknowledge()。此外,最佳做法是仅将JMS样式的事务用于自动可恢复的错误(即主机已关闭)。对于永远不会起作用的上下文问题(即坏数据),您应该将消息移动到另一个队列,即一些.DLQ或.ERR队列。