Table of Contents |
---|
Status
Current state: Under Discussion Adopted
Discussion thread: http://markmail.org/message/oeg63goh3ed3qdap
JIRA:
Jira | ||||||
---|---|---|---|---|---|---|
|
Released: 0.10.1.0
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
Decoupling the processing timeout: We propose to introduce a separate locally enforced timeout for record processing and a background thread to keep the session active until this timeout expires. The new timeout will be exposed We call this new timeout as the "process timeout" and expose it in the consumer's configuration as max.poll.interval.ms. This config sets the maximum delay between client calls to poll()
. When the timeout expires, the consumer will stop sending heartbeats and send an explicit LeaveGroup request. As soon as the consumer resumes processing with another call to poll()
, the consumer will rejoin the group. This is equivalent to the current processing model except that it allows the user to set a higher timeout when processing while also using a lower session timeout for faster crash detection.
...
session.timeout.ms
: 10smax.poll.interval.ms
: 60s5minmax.poll.records
: 500
We've reduced the default session timeout, but actually increased the amount of time given to consumers for message processing to 60 seconds5 minutes. We've also set a fairly conservative max.poll.records
to give users a more reasonable default batch size to avoid the need for many users to tune it in the first place (the current default is Integer.MAX_VALUE).
...