阅读卡夫卡中特定时间戳记的消息

时间:2019-03-11 03:51:47

标签: apache-kafka kafka-consumer-api

我想阅读从kafka中的特定时间开始的所有消息。 假设我要阅读0600到0800之间的所有消息

Request messages between two timestamps from Kafka 建议使用offsetsForTimes的解决方案。

该解决方案的问题是: 如果说我的使用者每天都在1300打开。该使用者当天不会读取任何消息,这实际上意味着0600 /之后没有偏移被提交,这意味着offsetsForTimes(,<0600在当天的毫秒数> )将返回null。

有什么方法可以读取在特定时间发布到kafka队列的消息,而与偏移量无关吗?

1 个答案:

答案 0 :(得分:0)

offsetsForTimes()返回在请求的时间内生成的消息的偏移量。不管是否提交了偏移量,它都可以工作,因为偏移量是直接从分区日志中获取的。

所以是的,您应该使用此方法查找0600之后产生的第一个偏移量,搜索到该位置并消耗消息,直到达到0800。