Mesaje nack neconsumate din RabbitMQ

Salut,

La munca folosim RabbitMQ. Avem pe o coada cam tot timpul in jur de 250 de mesaje care stau acolo si sunt nack. Numarul acetsor mesaje mai scade, dar tot ajunge pana la 250.

Aplicatia care ar trebui sa le consume este in Java si foloseste Spring AMQP

Exista o posibilitate sa fie consumate. sterse ack etc?

Am dat unbind la coda, purge si nu a mers nimic :slight_smile:
Asta din interfata web
Si mai sunt curios ce ar putea provoca acest nack la mesaje. O exceptie prin aplicatie, eroare etc

Ai dat multe detalii, asa ca o sa dau cu presupusul

  • Consumer e overloaded, probabil cand trage mesajul, face un clojure ceva care dureaza mai mult decat timeout default de ack, caz in care Rabbit face re-queue

  • Bad code. Poate pui un obiect serializat pe queue, iar cand il tragi, la de serializare crapa, caz in care nu se face ack si este re-queued

try/catch is your friend

Ce sa mai scriu si bucuros o fac? :slight_smile:

Sa stii cam am mai vazut acesta abordare

1 Like

no my friend. this is the only way to do it. basic coding

2 Likes

Pai cred ca asa o sa fie :slight_smile:

Problema cel mai probabil nu e cu Rabbit. Pune loguri in consumer sa vezi unde crapa, poate e asa cum s-a mai mentionat, deserializarea sau operatiunile ce se fac in consumer dureaza prea mult. Testeaza cu mesaje mai scurte sau testeaza cu ack imediat si fara procesare in consumer.

Quck update :slight_smile:

Cele 250 de mesaje sunt cea mai mica problema.

Am observat ieri un candidat la memory leak. Astfek CPU usage creste mult si nu se mai consuma mesajele din coada la rata optima.

Am facut cateva heap dump-uri ca sa le analizez si sa imi dau seama cum a aparut. A fost introdus intr-un build, ca pana sa fac upgrade la o noua versiune nu era prezent.

Fun times :grin:

Plus ca am mai vazut ceva exceptii si poate le infig un try/catch.

1 Like