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