Kafka Spout 在 Storm Topology 上读取了两次消息

我正在尝试使用 Kafka 模拟流流量到 Storm。我使用 KafkaSpout 从生产者发送的一个主题中读取一条消息,生产者阅读这些推文并将它们发送到一个主题。我的问题是,在拓扑消耗了该主题中发送的所有推文后,它继续读取该主题中的消息两次。如何阻止 KafkaSpout 读取两次?(复制因子设置为 1)



慕妹3146593
浏览 55回答 1
1回答

蓝山帝景

配置对我来说很好。也许问题是双重确认。确保你只在 acking 每个元组一次execute。如评论中所述,请考虑升级到更新的 Kafka 版本,以及切换到storm-kafka-client.还有一些可能会让您的生活更轻松的事情:考虑扩展BaseBasicBolt而不是BaseRichBolt. BaseBasicBolt如果运行execute没有抛出错误,它会自动为您确认元组。如果你想让一个元组失败,你可以抛出FailedException. BaseRichBolt只有当你想做更复杂的确认时才应该使用,例如,execute在确认之前从内存中的许多调用中聚合元组。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java