我正在使用kafka-node客户端从kafka发布和订阅。我想获取具有特定偏移量的特定消息。
我不知道怎么可能。如果有人有解决方案,请提供帮助。
谢谢
答案 0 :(得分:0)
Kafka是用于数据流处理和缓冲的消息代理,它不是数据库。因此,不能随机访问数据。有限的读取策略是从特定分区读取数据。您最多可以设计生产者来根据您的阅读需求分发数据。例如,在从传感器接收数据时,某人可以创建具有24个分区的主题,并根据采样时间戳发布传感器数据。现在,您每个小时都有一个特定分区中的数据。
但是,此策略与Kafka理念并不完全匹配!使用Kafka中的数据时,您可以根据分区的数量(每个分区一个使用方)获得最大的数据并行度。但是,当您根据采样时间戳将所有传入消息发布到分区时,一次只有一个分区正在缓冲数据,并且您的应用程序可以使用并行度消耗数据!
答案 1 :(得分:0)
当然,总的来说这是可能的,因为低级Kafka协议的提取请求允许指定起始偏移量。
看看我不太了解的kafka-node库,我发现使用addTopics
函数可以传递主题信息以及您要开始读取的偏移量,您还需要将fromOffset
参数设置为true
。
也有setOffset
方法。
遵循参考文献:https://github.com/SOHU-Co/kafka-node#consumer