yangyang12138

导航

kafka消费者全部数据

1.目的

  每次消费数据时从最开始消费,主要是做数据预览。

2.设置offset.reset

Properties properties = new Properties();
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
properties.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "demo");
properties.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,"false");
properties.setProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, org.apache.kafka.common.serialization.StringDeserializer.class.getName());
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, org.apache.kafka.common.serialization.StringDeserializer.class.getName());

return new KafkaConsumer<>(properties);

如果只设置AUTO_OFFSET_RESET_CONFIG是无效的,必须加上AUTO_OFFSET_RESET_CONFIG

3.每次消费完重新seek offset到开始位置

  由于seek是针对offset,所以必须是消费过数据后才能执行seek。

  consumer.beginningOffsets(consumer.listTopics().get("demo").stream().map(o->new TopicPartition(o.topic(),o.partition())).collect(Collectors.toList()));

posted on 2020-10-11 04:01  杨杨09265  阅读(552)  评论(0编辑  收藏  举报