[rabbitmq-discuss] Load balancing/ack interaction.

Ben Hood 0x6e6562 at gmail.com
Thu Jan 15 22:41:10 GMT 2009


Jason,

On Thu, Jan 15, 2009 at 10:33 PM, Jason J. W. Williams
<jasonjwwilliams at gmail.com> wrote:
> I noticed that consumer apps who had not yet ack'd the message they
> had received would receive new messages. I had assumed they wouldn't
> be assigned a new message from the queue until they had ack'd what
> they had already received.

I see you're talking about egress flow control.

ATM the only way for the consumer to stop the flow of messages is to
exert TCP back pressure on the server. If there is no back pressure,
the server will continue to deliver messages regardless of whether
prior messages have been ack'd or not.

Having said that, I am halfway through QA'ing a patch to implement the
basic.qos command, which will allow you to specify a prefetch window.

So the consumer specifies the window size and the server will halt the
flow of messages until enough acks have come back to push the window
forwards.

This patch should land quite soon.

HTH,

Ben




More information about the rabbitmq-discuss mailing list