[rabbitmq-discuss] AMQP Protocol: Basic.Publish when producer is throttled

Matthias Radestock matthias at rabbitmq.com
Tue Aug 21 23:46:48 BST 2012


On 21/08/12 20:49, Alan Antonuk wrote:
> I have an AMQP Protocol question:
> When the broker throttles a client due to a low-disk-space condition on
> the broker, what should a client expect when it sends a basic.publish
> method and payload?
> Restated: what does the client see from a protocol level when the client
> is throttled?

The server throttles connections by stopping to read from the socket. 
The effect is the same as just reading more slowly, or that of a slow / 
disrupted network.

If the condition lasts for a short duration only then there may be no 
observable effects at the client at all since buffering in the network 
stack / network can compensate.

If the condition persists then eventually the buffers fill up. How that 
manifests in the APIs depends on the client. Usually it's just a longer 
(or, in the extreme, indefinite) execution time for basicPublish method. 
Or in some async APIs it would be a delayed notification that the socket 
operation succeeded. Or it may be possible to check how much local 
buffer space there is left.



More information about the rabbitmq-discuss mailing list