I am writing kafka consumer using spring-kafka template. When I am instantiating consumers, Spring kafka takes in parameters like the following.
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
props.put(ConsumerConfig.FETCH_MAX_BYTES_CONFIG, fetchMaxBytes);
props.put(ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG, maxPartitionFetchBytes);
I read the documentation and it looks like there are lots of other parameters that can be passed as the consumer configs too. Interestingly, each of these parameter has a default value. My question is
- On what basis were these arrived?
- Will there be a real-need to change these values, if so what would be those
(IMHO, this is on case by case basis. But still would like to hear it from experts) - The delivery semantic we have is atleast once. So, for this (atleast-once) delivery semantic, should these be left untouched and it would still process high volume of data.
Any pointers or answers would be of great help in clarifying my doubts.