卡夫卡消费者未获取适当的抵销

时间:2018-07-30 16:57:53

标签: python-3.x apache-kafka kafka-consumer-api kafka-python

向我发送大量消息后,我一直在尝试连接到Kafka。我只有一个主题,只有一个Kafka集群正在运行。我正在使用kafka-python的使用者。

给出一个时间戳,我想从那个时间开始获取所有消息。因此,我使用offsets_for_times方法获取了偏移量,寻找到那里,然后遍历消息。此示例对时间戳进行硬编码。

kafka_consumer = KafkaConsumer(bootstrap_servers='localhost:9000', group_id=None, request_timeout_ms=1000)

topic_partition = TopicPartition('topic_example', 0)
offset_dict = self.kafka_consumer.offsets_for_times({self.topic_partition: 1532712993})

# fetches first partition's timestamp, only have one
from_offset = next(iter(offset_dict.values())).offset

kafka_consumer.seek(topic_partition, from_offset)
kafka_consumer.poll()

for message in kafka_consumer:
    ...

但是,看来offsets_for_times不能正常工作。无论我发送的时间戳是什么,我收到的消息始终是添加到该主题的第一条消息。

我想知道是否缺少特定配置?该文档明确指出

offs_for_times(时间戳): 通过时间戳查找给定分区的偏移量。每个分区返回的偏移量是最早的偏移量,其时间戳大于或等于相应分区中的给定时间戳记。

0 个答案:

没有答案