Flow Control

RabbitMQ will reduce the speed of connections which are publishing too quickly for queues to keep up. No configuration is required.

A flow-controlled connection will show a state of flow in rabbitmqctl and the management plugin HTTP API. This means the connection is being blocked and unblocked several times per second, in order to keep the rate of message ingress at one that the rest of the server can handle.

In general, a connection which is in flow control should not see any difference from normal running; the flow state is there to inform the sysadmin that the publishing rate is restricted, but from the client's perspective it should just look like the network bandwidth to the server is lower than it actually is.

Other components than connections can be in the flow state. This blog post goes into more detail in how to use this information to find bottlenecks in your server.

Getting Help and Providing Feedback

If you have questions about the contents of this guide or any other topic related to RabbitMQ, don't hesitate to ask them on the RabbitMQ mailing list.

Help Us Improve the Docs <3

If you'd like to contribute an improvement to the site, its source is available on GitHub. Simply fork the repository and submit a pull request. Thank you!