Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The KafkaConsumer is a complex client that incorporates different configurations for detecting consumer failure to allow alive remaining consumers to pick up the partitions of failed consumers. One such configuration is max.poll.interval.ms which is defined as:"

max.poll.interval.msThe maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records. If poll() is not called before expiration of this timeout, then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member.

...

int300000[1,...]medium

Hitting this timeout will cause the consumer to leave the group and trigger a rebalance.

This scenario is typically hit when the application code to process the consumer's fetched records takes too long (longer than max.poll.interval.ms). Hitting this timeout will cause the consumer to leave the group and trigger a rebalance. The consumer will end up rejoining the group if processing time was the only issue.

Sometimes a long processing time is unavoidable if:

  1. Minimum processing time is long to begin with
  2. Processing involves talking to a downstream service which sometimes causes a long response (ex. load issues)

In such cases, the user must fine-tune the configurations to fit their use-case however detection of such events is currently difficult. The consumer will log an error when such threshold is hit:


Public Interfaces

Briefly list any new interfaces that will be introduced as part of this proposal or any existing interfaces that will be removed or changed. The purpose of this section is to concisely call out the public contract that will come along with this feature.

...