Apache kafka 如何使用java从apache kafka开始使用所有消息

Apache kafka 如何使用java从apache kafka开始使用所有消息,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我正在尝试使用Apache Kafka中某个主题开头的所有消息。我可以使用此时产生的消息。这是我获取消息的代码 public void consume() { KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Arrays.asList(topic)); while (true) { ConsumerRec

我正在尝试使用Apache Kafka中某个主题开头的所有消息。我可以使用此时产生的消息。这是我获取消息的代码

 public void consume() {
    KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
    consumer.subscribe(Arrays.asList(topic));
    while (true) {
        ConsumerRecords<String, String> records = consumer.poll(1000);
        for (ConsumerRecord<String, String> record : records) {
            System.out.printf("\"%s\"\n", record.value());
        }
    }
}
public-void-consumer(){
卡夫卡消费者=新卡夫卡消费者(道具);
consumer.subscribe(Arrays.asList(topic));
while(true){
ConsumerRecords记录=consumer.poll(1000);
对于(消费者记录:记录){
System.out.printf(“\%s\”\n”,record.value());
}
}
}

订阅主题后,可以使用
seektobegining
方法设置主题分区开头的偏移量。当然,它对每个分区都有效,因为具有不同分区的主题具有不同的开始偏移量(如果发生消息删除)。

订阅主题后,可以使用
seektobegining
方法在主题分区的开始处设置偏移量。当然,它对每个分区都有效,因为具有不同分区的主题具有不同的起始偏移量(如果发生消息删除)。

控制台使用者生成一个随机使用者组id以完成此操作,并设置
auto.offset.reset=earlime


确保关闭使用者对象以防止在Zookeeper中添加大量临时使用者组id

控制台使用者生成随机使用者组id以完成此操作,并设置
auto.offset.reset=earlime


请确保关闭使用者对象,以防止在Zookeeper中添加大量临时使用者组id,除了设置,
auto.offset.reset=earliest
,尝试为属性
group.id
设置一个新的/随机值,然后再试一次。此外,如果您对跟踪消费者的位置不感兴趣,但总是想从头开始,则还可以设置
enable.auto.commit=false
,以避免污染补偿主题

希望能有帮助


谢谢。

除了设置,
auto.offset.reset=earlime
,尝试为属性
group.id
设置一个新的/随机值,并尝试一下。此外,如果您对跟踪消费者的位置不感兴趣,但总是想从头开始,则还可以设置
enable.auto.commit=false
,以避免污染补偿主题

希望能有帮助


谢谢。

您能告诉我们一些您想要实现的用例的想法吗?或者这只是一个你正在尝试的实验?我需要分析来自ApacheKafka的消息,但在一开始,我需要从主题开始的所有数据。你能给我们一些关于你试图实现的用例的想法吗?或者这只是一个你正在尝试的实验?我需要分析来自ApacheKafka的消息,但在一开始,我需要从主题开始的所有数据。