来自一个ActiveMQ队列的几个消费者

时间:2013-03-13 16:04:25

标签: java jms activemq

假设有几个消费者连接到同一个队列。

我的业务逻辑是:从队列中获取消息,执行一些逻辑操作,如果该操作成功,则确认此消息(作为client-ack工作)。

我的问题是,如果其中一个消费者逻辑失败并且它没有返回对该消息的确认,会发生什么。

在消息仍由消费者处理时,是否存在将此消息发送给其他消费者的风险?

是否存在某种超时时间,此消息由线程释放回队列?

1 个答案:

答案 0 :(得分:3)

将消息以循环方式分发给消费者以排队消费者。如果消费者失败并且其处理的消息未在Broker处确认,则一旦经纪人检测到消费者连接失败,它将把消息放回队列,使其可供另一个连接的消费者处理。

还可以为消息配置设置的最大重新递送次数,以便在某个点之后将其置于死信队列中。