[rabbitmq-discuss] [rabbitmq-c] amqp_queue_unbind eat a lot of memory in some usecases

Alan Antonuk alan.antonuk at gmail.com
Fri Sep 6 08:03:41 BST 2013


On Thu, Sep 5, 2013 at 11:06 PM, Haster <haster2004 at yandex.ru> wrote:
>
>
> I set no-ack to 0 in basic.consume, so I suggest that server will wait for
> basic.ack from client on each message.


Yes, if no-ack is set to 0, the broker won't consider the message delivered
until you acknowledge it. By default the broker does not pause sending
messages if there are outstanding unacknowledged messages. You can tune
this by using basic.qos to set a message prefetch on the channel, this will
limit the number of unacknowledged messages on a channel before the broker
will pause and wait for the client to acknowledge a message.

If no-ack is set to 1, the broker considers the message acknowledged as
soon as it leaves the broker, and basic.qos will have no effect consumers
declared with this set.

You can acknowledge a single message with basic.ack (amqp_basic_ack()), or
all messages up to a message by setting the multiple flag when doing a
basic.ack.


-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130906/a8c4aaa6/attachment.htm>


More information about the rabbitmq-discuss mailing list