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