我正在尝试使用RabbitMQ实现工作队列架构。我有一个发件人应用程序和多个消费者。
我对消费者使用手动确认,因此如果处理请求失败,它将被重新排队等待另一个消费者处理。
我想知道如果所有消费者在特定请求中返回nack会发生什么。有没有办法识别这种行为并将请求标记为“死”,以便将其重新路由到死信交换?在这种情况下,我希望在绑定到死信交换的队列上打开一个单独的消费者,并接收任何消费者无法处理的所有消息(用于记录目的或在本地执行此请求的任务,而不是分发消费者)。
我有另一个问题。当从消费者接收到NACK时重新排队请求时,它是否会尝试将此请求发送给其他消费者,或者它是否会尝试发送给第一个可用的请求,即使它已经是那个已经收到请求的消息?
由于
答案 0 :(得分:2)