[rabbitmq-discuss] AMQP Protocol: Basic.Publish when producer is throttled
Matthias Radestock
matthias at rabbitmq.com
Tue Aug 21 23:46:48 BST 2012
Alan,
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.
Regards,
Matthias.
More information about the rabbitmq-discuss
mailing list