我们有一个 rabbitmq 集群,它从一个应用程序接收消息,然后由第二个应用程序接收。我们遇到了一个问题,我们的队列中有大量“未确认”的消息。我们总共有三台运行第二个应用程序的服务器,并且已重新启动所有服务器,但未确认的消息未被接收。我们收到一个错误,看起来像是我们的代码存在问题(我们正在单独调查)。
经过一番研究,我们意识到这些消息可能已经发送,但未得到正确确认。我们想知道是否有办法查看类似于就绪队列中的未确认消息,以便我们进一步调查。
答案1
我们发现了一些对我们有帮助的东西。
首先,我们创建了一个综合队列来收集所有事件并将它们保存在就绪队列中,以便我们能够弄清楚发生了什么。原来是一个生产者发送了无效消息。我们关闭了这个生产者,发现所有新消息都正常并且正在处理中。
其次,我们短暂关闭了所有消费者(在我们的环境中一切正常)。这导致所有消息从未确认变为就绪。此时我们可以查看并发现它们都是无效的。由于它们位于就绪队列中,因此我们能够刷新队列。