-1

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

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

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

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

是否存在某种超时,然后线程将消息释放回队列?

4

1 回答 1

3

消息以循环方式发送给消费者队列消费者。如果消费者失败并且它正在处理的消息在代理处没有得到确认,那么一旦代理检测到消费者连接失败,它将把消息放回队列中,使其可供另一个连接的消费者处理。

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

于 2013-03-13T17:41:23.043 回答