Change Kafka Buffer defaults for fetch.max.wait.ms, fetch.min.bytes, partition.assignment.strategy, close consumer on shutdown #5373
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When data prepper scales horizontally and removes data prepper instances, this can cause instability due to using the RangeAssignor, since the behavior for RangeAssignor is
CoopeartiveStickyAssignor will gradually release partitions instead of dropping them all at once and reassigning when a consumer leave the group
Additionally, the
fetch.max.wait.ms
at 500 ms andfetch.min.bytes
as 1 will lead to many more calls to consume and return smaller number of records. Changing this to 1000 ms and 2 kb will lead to less calls to consume and more records being returned in each poll call, which will also lower the utilization on the kafka cluster.Lastly, the Kafka buffer consumers were not calling
consumer.close()
on shutdown, which will mean that the Kafka server will wait for heartbeat to fail (around 45 seconds) before it realizes it has lost a consumer, rather than immediately.Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.