Kafka Consumer Properties从最大偏移量读取

时间:2016-09-12 23:43:33

标签: java apache-kafka kafka-consumer-api

我写了一篇Java Kafka Consumer。我想确保如何明确确保一旦Kafka Consumer启动它只读取生产者从那时起发送的消息,即它不应该读取生产者已经发送给Kafka的任何消息。任何人都可以解释如何确保这一点? :

以下是我使用的属性的片段

Properties properties = new Properties();
properties.put("zookeeper.connect", zookeeperHost);
properties.put("group.id", group);
properties.put("auto.offset.reset","largest");
ConsumerConfig consumerConfig = new ConsumerConfig(properties);
consumerConnector = Consumer.createJavaConsumerConnector(consumerConfig);

更新9月14日:

我正在使用以下属性,似乎消费者有时仍会从头开始阅读,有人可以告诉我现在有什么问题吗?

我正在使用Kafka版本0.8.2

properties.put("auto.offset.reset","largest");
properties.put("auto.commit.enable","false");

1 个答案:

答案 0 :(得分:2)

根据上面的答案,似乎正确的机制如下设置消费者的属性:

 properties.put("auto.offset.reset","largest");
 properties.put("auto.commit.enable","false");

这确保从最大偏移量

读取