[rabbitmq-discuss] Protection against slow consumers

Emile Joubert emile at rabbitmq.com
Mon Nov 1 16:13:07 GMT 2010


Hi Jiří,

Op 01/11/2010 12:22, het jiri at krutil.com geskryf:
> Hello together
>
> I'm looking for a way how to protect against slow consumers.
>
> We are publishing messages to a topic exchange as part of a public
> interface. The subscribers are applications developed by our clients
> (outside of our control).
>
> Our concern is that one slow consumer could potentially force the broker
> to throttle our publisher, affecting all other consumers.
>
> We encourage the consumers to use a small prefetch buffer, but have no
> way how to enforce this. In general, we cannot assume that all consumers
> cooperate.
>
> For instance, a client that is consuming but not acking will (I believe)
> impact the broker memory consumption.
>
> Your ideas are welcome.

I assume you have subscribers each set up with their own queue and 
binding. In this case I would expect long queues associated with slow 
subscribers to be persisted to disk automatically. This prevents RAM 
pressure, which the broker attempts to relieve by blocking producers. 
This assumes that you are running version 2.0.0 or later. If you are 
seeing different results then we'd like to hear the details.

Regards

Emile


More information about the rabbitmq-discuss mailing list