On Mon, Apr 13, 2015 at 10:10 PM, bit1...@163.com <bit1...@163.com> wrote:

> Hi, Kafka experts:
>
> I got serveral questions about auto.offset.reset. This configuration
> parameter governs how  consumer read the message from Kafka when there is
> no initial offset in ZooKeeper or if an offset is out of range.
>
> Q1. "no initial offset in zookeeper "  means that there isn't any consumer
> to consume the message yet(The offset is set once the consumer starts to
> consume)?
>

Yes, or if you consumed messages, but auto offset commit is disabled and
you haven't explicitly committed any offsets.


> Q2:  What does "offset is out of range" mean? Can you eleborate one
> scenario when "offset is out of range" could happen?
>

Kafka uses a retention policy for topics to expire data and clean it up. If
some messages expire and your consumer hasn't run in awhile, the last
committed offset may no longer exist.


>
> auto.offset.reset has two values:smallest and largest.
> Assume one scenario: A producer has produced 10 messages to kafka, and
> there is no consumer yet to consume it.
> Q3: If auto.offset.reset is set to "smallest", does it mean that the
> consumer will read the message from the offset 0?(0 is smallest here)
>

Yes.


> Q4: If auto.offset.reset is set to "largest", does it mean that the
> consumer will not read any message but wait until new messages come?
>

Also correct. This is why in the quickstart you need to use the
--from-beginning flag on the console consumer. Since the consumer is
executed after the console producer it wouldn't see any messages unless it
set auto.offset.reset to smallest, which is what --from-beginning does.


>
>
>
> bit1...@163.com
>



-- 
Thanks,
Ewen

Reply via email to