[rabbitmq-discuss] Simple benchmark and results

David Glaubman dglaubman at acm.org
Wed Oct 21 19:14:31 BST 2009

Philippe Kirsanov wrote:
>> What exactly "noAck" parameter in basicConsume mean? Is it auto-ack
>> on message or something else? API guide sais it is "handshake ack".
I think it means auto-ack -- when I set it true in BasicConsume 
and remove the call to BasicAck my receive performance more than tripled.

Here’s a quote on noAck: 
    AMQP says that a broker shouldn't forget about a msg until it's been 
    ack'd. Now this can either happen by an explicit ack coming from the 
    consumer, or from an implicit ack, by setting noAck to true when 
    subscribing to the queue. Yes, the unfortunate naming of "noAck" is, um, 
    unfortunate. Internally, we tend to invert this and then call it 

Hope this helps.


-----Original Message-----
From: rabbitmq-discuss-bounces at lists.rabbitmq.com
[mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of David
Sent: Wednesday, October 21, 2009 13:45
To: rabbitmq-discuss at lists.rabbitmq.com
Subject: Re: [rabbitmq-discuss] Simple benchmark and results


You write:
> Note that there is one obvious difference to the .net tests: 
> By setting the "-a" flag the consumers will operate 
> in auto-ack mode, whereas in the .net code you posted you do an
> ack. 
> The former is quite a bit more efficient and may well account 
> for the bulk of the difference between the .net and java consumer
> performance. 

Bingo! Setting 'noAck' = true on basicConsume increases messages
received to
about 33K per sec.

View this message in context: http://www.nabble.com/Simple-benchmark-and-results-tp25968960p25997547.html
Sent from the RabbitMQ mailing list archive at Nabble.com.

More information about the rabbitmq-discuss mailing list