第一批: - 我试图从100平面文件中提取数据并加载到数组中,然后将它们逐个插入到kafka生成器中作为字节数组。
第二批: - 我从kafka使用者那里消费,然后将它们插入NoSQL数据库。
我在kafka的shopify sarama golang包的配置文件中使用Offsetnewset。
我可以接收并向kafka插入消息,但在消费时我只收到第一条消息。因为我在sarama配置中给了Offset最新版本。 我怎样才能获得所有数据。
答案 0 :(得分:1)
很难能够在没有任何代码或更深入解释kafka如何配置(即:主题,分区......)的情况下讲述一些内容,因此很少有快速检查出现在我的脑海中:
假设您开始使用OffsetNewest设置之前开始制作,可能发生的一件事是您没有在该主题的所有分区上消费,关于sarama docs,您必须通过创建PartitionConsumers显式使用每个分区。来自https://godoc.org/github.com/Shopify/sarama#Consumer中的示例:
partitionConsumer, err := consumer.ConsumePartition("my_topic", 0, OffsetNewest)
if err != nil {
panic(err)
}
...
consumed := 0
ConsumerLoop:
for {
select {
case msg := <-partitionConsumer.Messages():
log.Printf("Consumed message offset %d\n", msg.Offset)
consumed++
case <-signals:
break ConsumerLoop
}
}
事实上,你正在开始消费 生成所有事件,因此,所有事件的指针都不是OffsetNewest而是OffsetOldest。
我很抱歉无法为您提供更有用的答案,但是如果您粘贴一些代码或提供更多详细信息,我们可以提供更多帮助。