我想阅读从kafka中的特定时间开始的所有消息。 假设我要阅读0600到0800之间的所有消息
Request messages between two timestamps from Kafka 建议使用offsetsForTimes的解决方案。
该解决方案的问题是:
如果说我的使用者每天都在1300打开。该使用者当天不会读取任何消息,这实际上意味着0600 /之后没有偏移被提交,这意味着offsetsForTimes(
有什么方法可以读取在特定时间发布到kafka队列的消息,而与偏移量无关吗?
答案 0 :(得分:0)
offsetsForTimes()
返回在请求的时间内生成的消息的偏移量。不管是否提交了偏移量,它都可以工作,因为偏移量是直接从分区日志中获取的。
所以是的,您应该使用此方法查找0600之后产生的第一个偏移量,搜索到该位置并消耗消息,直到达到0800。