我正在嘗試使用 Kafka 模擬流流量到 Storm。我使用 KafkaSpout 從生產者發送的一個主題中讀取一條消息,生產者閱讀這些推文并將它們發送到一個主題。我的問題是,在拓撲消耗了該主題中發送的所有推文后,它繼續讀取該主題中的消息兩次。如何阻止 KafkaSpout 讀取兩次?(復制因子設置為 1)
1 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
配置對我來說很好。
也許問題是雙重確認。確保你只在 acking 每個元組一次execute
。
如評論中所述,請考慮升級到更新的 Kafka 版本,以及切換到storm-kafka-client
.
還有一些可能會讓您的生活更輕松的事情:考慮擴展BaseBasicBolt
而不是BaseRichBolt
. BaseBasicBolt
如果運行execute
沒有拋出錯誤,它會自動為您確認元組。如果你想讓一個元組失敗,你可以拋出FailedException
. BaseRichBolt
只有當你想做更復雜的確認時才應該使用,例如,execute
在確認之前從內存中的許多調用中聚合元組。
添加回答
舉報
0/150
提交
取消