卡夫卡0.9:从最早的卡夫卡偏移消耗

时间:2016-10-19 22:08:22

标签: apache-kafka

从我对Kafka消费者配置的阅读中,我的理解是,如果我设置这两个属性,那么在我的消费者的启动时,我将始终消耗最早的偏移量

enable.auto.commit = false
auto.offset.reset = earliest

虽然这在我第一次启动应用程序时有效,但下次重新启动它时不会从头开始消耗

相反,我需要做的是将我的group.id更改为新的,然后它将从最早的偏移恢复。

可能会有其他一些提交进行吗?

更新

在我看来,这是我正在使用的Camel Kafka组件的问题。 org.apache.camel.component.kafka.KafkaConsumer类具有此逻辑

if (endpoint.isAutoCommitEnable() != null && !endpoint.isAutoCommitEnable()) {
    if (processed >= endpoint.getBatchSize()) {
        consumer.commitSync();
        processed = 0;
    }
}

通过我的阅读看起来每次auto commit enable为false时它都会提交偏移量。 这是Camel Kafka组件的一个特性,即使启用了自动提交,它也会在x个消息后同步

1 个答案:

答案 0 :(得分:3)

Your understanding sounds correct.

Kafka 0.9 has both "Old" and "New" consumer configs. This configuration property changed between them.

auto.commit.enable = false
enable.auto.commit = false

https://kafka.apache.org/documentation#consumerconfigs

On startup it should be logging its configuration as well, so verify there.

2016-10-06 14:19:41,725 INFO [org.apache.kafka.clients.consumer.ConsumerConfig:165] - ConsumerConfig values:
    group.id = service
    bootstrap.servers = [kafka:9092]
    enable.auto.commit = false
    auto.offset.reset = latest