我正在嘗試使用 Kafka 模擬流流量到 Storm。我使用 KafkaSpout 從生產(chǎn)者發(fā)送的一個(gè)主題中讀取一條消息,生產(chǎn)者閱讀這些推文并將它們發(fā)送到一個(gè)主題。我的問題是,在拓?fù)湎牧嗽撝黝}中發(fā)送的所有推文后,它繼續(xù)讀取該主題中的消息兩次。如何阻止 KafkaSpout 讀取兩次?(復(fù)制因子設(shè)置為 1)
1 回答

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