如何使用Java从Kafka获取最近5天的消息

如何使用Java从Kafka获取最近5天的消息,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,我已经在Kafka中将一个主题的TTL设置为7天,我正在从Kafka获取数据并将其存储在DB中,但从过去5天起,我的DB服务器关闭,现在我必须从Kafka获取过去5天的消息并将其存储在DB中 注意:从过去5天开始,卡夫卡没有问题 首先调用consumer.partitions获取主题的分区 然后调用consumer.offsetsForTimes获取5天前成功处理最后一条消息时的时间戳的每个分区的偏移量 然后调用consumer.seek在该时间点定位当前consumer偏移量,并继续调用pol

我已经在Kafka中将一个主题的TTL设置为7天,我正在从Kafka获取数据并将其存储在DB中,但从过去5天起,我的DB服务器关闭,现在我必须从Kafka获取过去5天的消息并将其存储在DB中
注意:从过去5天开始,卡夫卡没有问题

首先调用consumer.partitions获取主题的分区

然后调用consumer.offsetsForTimes获取5天前成功处理最后一条消息时的时间戳的每个分区的偏移量

然后调用consumer.seek在该时间点定位当前consumer偏移量,并继续调用poll并像通常一样处理消息


首先调用consumer.partitions获取主题的分区

然后调用consumer.offsetsForTimes获取5天前成功处理最后一条消息时的时间戳的每个分区的偏移量

然后调用consumer.seek在该时间点定位当前consumer偏移量,并继续调用poll并像通常一样处理消息


在前面的好答案中,我将添加call partitions作为获取主题分区的方法,然后按照@Hans所说的操作。

在前面的好答案中,我将添加call partitions作为获取主题分区的方法,然后按照@Hans所说的操作。

您需要借助偏移量值进行消费。例如,如果您上次读取的是偏移量100,那么您需要从偏移量101使用它。如何在Java中使用此偏移量概念,以及如何知道存储消息的最后偏移量值,因为我没有存储您需要借助偏移量值使用的任何偏移量值。例如,如果上次读取的偏移量为100,则需要使用偏移量101。如何在Java中使用此偏移量概念,以及如何知道存储消息的最后偏移量值,因为我没有存储任何偏移量值谢谢。我更新了我的答案,包括正确的第一步。谢谢。我更新了我的答案,包括正确的第一步。