Temos um cluster rabbitmq que recebe mensagens de um aplicativo que, em seguida, são selecionadas por um segundo aplicativo. Encontramos um problema em que temos um grande número de mensagens 'não confirmadas' em nossa fila. Temos três servidores no total que executam o segundo aplicativo e reiniciamos todos eles, mas as mensagens não confirmadas não são detectadas. Recebemos um erro que parece ser um problema com nosso código (que estamos analisando separadamente).
Depois de fazer algumas pesquisas, percebemos que essas mensagens poderiam já ter sido enviadas, mas não foram reconhecidas adequadamente. Estamos nos perguntando se há uma maneira de visualizar as mensagens não confirmadas semelhantes às da fila pronta para que possamos investigar mais.
Encontramos algumas coisas que nos ajudaram com isso.
Primeiro, criamos uma fila catchall para coletar todos os eventos e mantê-los na fila pronta para que pudéssemos descobrir o que estava acontecendo. Acontece que um produtor estava enviando mensagens inválidas. Fechamos esse produtor e observamos que todas as novas mensagens pareciam boas e estavam sendo processadas.
Em segundo lugar, desligamos todos os consumidores (ótimo em nosso ambiente) por um curto período de tempo. Isso fez com que todas as mensagens passassem de não confirmadas para prontas. Nesse ponto, pudemos visualizar e ver que todos eram inválidos. Como eles estavam na fila de prontos, conseguimos liberar a fila.