如何从Kafka中的特定偏移量获取数据?

时间:2019-01-23 05:52:38

标签: node.js apache-kafka kafka-consumer-api

我正在使用kafka-node客户端从kafka发布和订阅。我想获取具有特定偏移量的特定消息。

我不知道怎么可能。如果有人有解决方案,请提供帮助。

谢谢

2 个答案:

答案 0 :(得分:0)

Kafka是用于数据流处理和缓冲的消息代理,它不是数据库。因此,不能随机访问数据。有限的读取策略是从特定分区读取数据。您最多可以设计生产者来根据您的阅读需求分发数据。例如,在从传感器接收数据时,某人可以创建具有24个分区的主题,并根据采样时间戳发布传感器数据。现在,您每个小时都有一个特定分区中的数据。

但是,此策略与Kafka理念并不完全匹配!使用Kafka中的数据时,您可以根据分区的数量(每个分区一个使用方)获得最大的数据并行度。但是,当您根据采样时间戳将所有传入消息发布到分区时,一次只有一个分区正在缓冲数据,并且您的应用程序可以使用并行度消耗数据!

答案 1 :(得分:0)

当然,总的来说这是可能的,因为低级Kafka协议的提取请求允许指定起始偏移量。

看看我不太了解的kafka-node库,我发现使用addTopics函数可以传递主题信息以及您要开始读取的偏移量,您还需要将fromOffset参数设置为true。 也有setOffset方法。 遵循参考文献:https://github.com/SOHU-Co/kafka-node#consumer