Dacă un consumator nu specifică un prefetch count, RabbitMQ va încerca să-i trimită instantaneu toate mesajele din coadă. Dacă sunt 100.000 de mesaje în așteptare, consumatorul se va prăbuși prin epuizare de memorie (OOM). Setarea unui prefetch_count=50 garantează că workerul primește doar sarcini pe care le poate procesa concurent.
RABBIT
Toate comenzile RabbitMQ
Optimizarea Debitul de Mesaje în RabbitMQ: Consumer Prefetch (QoS), Acknowledgment Manual și Backpressure în RabbitMQ
Performanță & Tuning
RabbitMQ 3.13
Ghid complet de tuning și performanță în RabbitMQ: de ce basic.qos prefetch_count este critic pentru prevenirea epuizării memoriei consumatorilor, confirmări manuale (basic_ack) și evitarea congestionării brokerului.
Sintaxă
channel.basic_qos(prefetch_count=50); channel.basic_ack(delivery_tag=tag);