Richard Whaling created KAFKA-3280:
--------------------------------------
Summary: 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
Fix For: 0.10.0.0
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)