Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何查找卡夫卡主题中未删除的第一条消息_Java_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Java 如何查找卡夫卡主题中未删除的第一条消息

Java 如何查找卡夫卡主题中未删除的第一条消息,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,我有一个主题,里面有一些信息。保留时间结束后删除了部分邮件,包括偏移点所在的邮件和之后的许多邮件 如何在主题中查找最早的现有邮件?我听说API中有一些方法,但我找不到。如果有人知道怎么做,请帮忙,因为我已经在文档中搜索过了。提前感谢。您可以将卡夫卡控制台消费者与--最大消息1和--从一开始一起使用,以获取最早的消息: kafka-console-consumer --bootstrap-server localhost:9092 --topic topic_name --from-beginni

我有一个主题,里面有一些信息。保留时间结束后删除了部分邮件,包括偏移点所在的邮件和之后的许多邮件


如何在主题中查找最早的现有邮件?我听说API中有一些方法,但我找不到。如果有人知道怎么做,请帮忙,因为我已经在文档中搜索过了。提前感谢。

您可以将
卡夫卡控制台消费者
--最大消息1
--从一开始
一起使用,以获取最早的消息:

kafka-console-consumer --bootstrap-server localhost:9092 --topic topic_name --from-beginning --max-messages 1
您可以使用Consumer API中的方法查找可用的最旧消息

例如:

Properties configs = new Properties();
configs.put("bootstrap.servers", "localhost:9092");
configs.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
configs.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

try (KafkaConsumer<String, String> consumer = new KafkaConsumer<>(configs);) {

    Map<TopicPartition, Long> offsets = consumer.beginningOffsets(Collections.singletonList(TP));
    System.out.println(offsets);
}
Properties configs=新属性();
configs.put(“bootstrap.servers”,“localhost:9092”);
configs.put(“key.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
configs.put(“value.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
try(卡夫卡消费者=新卡夫卡消费者(配置);){
映射偏移量=consumer.beginingoffset(Collections.singletonList(TP));
系统输出打印项次(偏移量);
}
将打印如下内容:

{offset-test-0=0}

在此示例中,偏移量0是可用的最旧偏移量