[ https://issues.apache.org/jira/browse/KAFKA-3280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15166588#comment-15166588 ]
ASF GitHub Bot commented on KAFKA-3280: --------------------------------------- GitHub user rwhaling opened a pull request: https://github.com/apache/kafka/pull/968 KAFKA-3280: KafkaConsumer Javadoc contains misleading description of heartbeat behavior and correct use This is my original work and I license the work to the project under the project's open source license. You can merge this pull request into a Git repository by running: $ git pull https://github.com/rwhaling/kafka docs/kafkaconsumer-heartbeat-doc-improvement Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/968.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #968 ---- commit fd789dc9b0d9d7c7aa724ab5f4aa0d49a95fcff2 Author: Richard Whaling <rwhal...@spantree.net> Date: 2016-02-25T02:13:32Z clarified documentation of KafkaConsumer heartbeat behavior ---- > KafkaConsumer Javadoc contains misleading description of heartbeat behavior > and correct use > ------------------------------------------------------------------------------------------- > > Key: KAFKA-3280 > URL: https://issues.apache.org/jira/browse/KAFKA-3280 > Project: Kafka > Issue Type: Bug > Components: consumer > Affects Versions: 0.9.0.0 > Reporter: Richard Whaling > Assignee: Neha Narkhede > Labels: doc > Fix For: 0.10.0.0 > > Original Estimate: 0.25h > Remaining Estimate: 0.25h > > The KafkaConsumer Javadoc says that: "The consumer will automatically ping > the cluster periodically, which lets the cluster know that it is alive. As > long as the consumer is able to do this it is considered alive and retains > the right to consume from the partitions assigned to it." This is false. > The heartbeat process is neither automatic nor periodic. The consumer > heartbeats exactly once when poll() is called. The consumer's run thread is > responsible for calling poll() before session.timeout.ms elapses. > Based on this misinformation, it is easy for a naive implementer to build a > batch-based kafka consumer that takes longer than session.timeout.ms between > poll() calls and encounter very ugly rebalance loops that can be very hard to > diagnose. Clarification in the docs would help a lot--I'll submit a patch > shortly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)