Dmitry Stratiychuk created KAFKA-2478:
-----------------------------------------

             Summary: KafkaConsumer javadoc example seems wrong
                 Key: KAFKA-2478
                 URL: https://issues.apache.org/jira/browse/KAFKA-2478
             Project: Kafka
          Issue Type: Bug
          Components: consumer
    Affects Versions: 0.8.3
            Reporter: Dmitry Stratiychuk
            Assignee: Neha Narkhede


I was looking at this KafkaConsumer example in the javadoc:
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java#L199

As I understand, commit() method commits the maximum offsets returned by the 
most recent invocation of poll() method.

In this example, there's a danger of losing the data.
Imagine the case where 300 records are returned by consumer.poll()
The commit will happen after inserting 200 records into the database.
But it will also commit the offsets for 100 records that are still unprocessed.

So if consumer fails before buffer is dumped into the database again,
then those 100 records will never be processed.

If I'm wrong, could you please clarify the behaviour of commit() method?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to