我打算跳过主题的开头,只读取从某个时间戳到结尾的消息。关于如何实现这一目标的任何提示?
答案 0 :(得分:3)
我猜你正在使用kafka-python
(https://github.com/dpkp/kafka-python),如你所提到的那样" KafkaConsumer"。
您可以使用offsets_for_times()
方法检索与时间戳匹配的偏移量。 https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html#kafka.KafkaConsumer.offsets_for_times
然后使用seek()
寻找该偏移量。 https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html#kafka.KafkaConsumer.seek
希望这有帮助!
答案 1 :(得分:0)
我解决了这个问题,但是我不确定使用该方法得到的值。 我有一个KafkaConsumer(ck),我使用assignment()方法获得了主题的分区。因此,我可以创建一个字典,其中包含我感兴趣的主题和时间戳(在本例中为100)。
旁边问题: 我应该使用0来获取所有消息吗?。
我可以使用该字典作为offsets_for_times()中的参数。但是,我得到的值都是None
zz = dict(zip(ck.assignment(), [100]*ck.assignment() ))
z = ck.offsets_for_times(zz)
z.values()
dict_values([None, None, None])