Knowledge base

rabbitmq-qos verifiedimportantWritten by the Hub

Prefetch window per consumer

in the configuration this is a linerabbitmq-qos: …

How many messages one consumer thread may hold unacknowledged at a time.

Values

Values
positive integer
applying
restart required
where it can be set
in the config file · with a startup flag · as an environment variable

In detail

This is the knob that decides how much mail a node claims before it has done anything with it. Claimed messages are invisible to other nodes and are not returned until the node acknowledges or dies, so a large window on a slow node starves the rest of the cluster — and a node that crashes hands its whole window back for redelivery, which is where duplicates come from.

What happens if you get it wrong

A node with a large window is stopped or crashes.Everything in its window returns to the queue for redelivery; anything it had already handed to a receiving server but not acknowledged can be sent twice.from the documentation
Large window on a node that is slow to send.Mail sits claimed on that node while other nodes idle, and the queue looks emptier than it is.inference · inference