随记-Kafka Offset不存在时拉取策略

268 阅读1分钟

当消费者尝试拉取一个特定分区的偏移量时,如果该偏移量不存在,Kafka 将根据以下策略决定从哪个位置进行拉取:

  1. 如果分区的消费者组具有提交的偏移量(即消费者已经提交了偏移量),那么 Kafka 将从提交的偏移量处开始拉取。

  2. 如果分区的消费者组没有提交的偏移量,则根据消费者组的设置来决定从何处开始拉取:

    • 如果消费者组启用了 auto.offset.reset=earliest,则会从最早的可用偏移量处开始拉取(例如,从该分区的起始位置)。
    • 如果消费者组启用了 auto.offset.reset=latest,则会从最新的可用偏移量处开始拉取(例如,从该分区的末尾位置)。
    • 如果消费者组启用了 auto.offset.reset=none,则当找不到提交的偏移量时,会抛出异常。

因此,当尝试拉取一个不存在的偏移量时,Kafka 会根据消费者组的设置来决定从哪个位置开始拉取。可以在消费者代码中,或者在 Kafka 的配置文件中设置 auto.offset.reset 参数来指定要使用的默认拉取位置策略。