在RabbitMQ中,某些消息被卡在UnAck状态。有什么方法可以将它们设置为就绪状态,而无需重新启动使用者应用程序或重新启动RabbitMQ服务器?
答案 0 :(得分:0)
Unacked
状态从字面上意味着消息正在消耗,正在等待确认,即状态更新。如果您的消息停留在这种状态,则很可能意味着您的消费者没有为这些消息提供适当的确认。
您可以通过以下方式提供确认。
ack
消息。这向RabbitMQ发出信号,表明该消息已被成功处理/使用,并且可以从队列中弹出。参见https://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.ack reject
或nack
消息。这表明消息未正确处理,应根据消息/队列配置将其“死信”或“重新排队”。参见https://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.reject 或者,您也可以为邮件设置TTL,在这种情况下,如果它们在队列中的时间超过其TTL,它们将自动reject
。参见此处https://www.rabbitmq.com/ttl.html。