But if sends are not done in blocking way (with .get()) how does acks matter ?
-----Original Message----- From: Matthias J. Sax <matth...@confluent.io> Sent: Saturday, November 17, 2018 12:15 AM To: users@kafka.apache.org Subject: Re: Producer throughput with varying acks=0,1,-1 I you enable acks, it's not fire and forget any longer. -Matthias On 11/16/18 1:00 AM, Abhishek Choudhary wrote: > Hi, > > I have been doing some performance tests with kafka cluster for my project. > I have a question regarding the send call and the 'acks' property of > producer. I observed below numbers with below invocation of send call. > This is a simple fire and forget call. > > producer.send(record); > > The topic has 5 partitions and I see below results with different acks > value and replication factor. The kafka cluster has 5 nodes running > with default values and using local disk > > *acks Replication factor=1 > Replication factor=3* > 0 1330k msgs/sec > 1260k msgs/sec > 1 1220k msgs/sec > 1200k msgs/sec > -1(all) 1220k msgs/sec > 325k msgs/sec > > > As you can see as the acks value changes from 0 to all, the producer > throughput decreases. What I am not able to understand is that if the > producer send call is fire and forget in nature and producer is not > waiting for any acknowledgements then why does the producer throughput > drops as we move to stronger acks guarantees? > > Any insights into how acks and producer send call works in Kakfa would > be greatly appreciated. > > Thanks, > Abhishek >