我设置了风暴拓扑,它从kafka服务器获取输入数据。我用kafka-storm包来获取数据。我已经在本地集群中成功实现了kafka服务器和风暴拓扑之间的连接,但是我在从kafka服务器检索数据时遇到了一些问题。
kafka Spout在运行时重复检索相同的消息,即使我设置了spoutconfig.forceFromStart=false
和spoutconfig.startOffsetTime =-1
注意:当我停止并重新启动群集时,数据会根据最新的偏移量正确发送。
答案 0 :(得分:2)
我自己想通了,问题在于outputcollector
ack()
方法。我用BaseBasicBolt
实现了螺栓收集器,它没有承认kafkaspout。我已使用BaseRichBolt
替换并手动设置this.collector.ack(tuple)
。
现在工作正常