我們在學習ack機制的時候,我們知道Storm的Bolt有BaseBasicBolt和BaseRichBolt。
在BaseBasicBolt中,BasicOutputCollector在emit資料的時候,會自動和輸入的tuple相關聯,而在execute方法結束的時候那個輸入tuple會被自動ack。
在使用BaseRichBolt需要在emit資料的時候,顯示指定該資料的源tuple要加上第二個參數anchor tuple,以保持tracker鍊路,即collector.emit(oldTuple, newTuple);并且需要在execute執行成功後調用OutputCollector.ack(tuple), 當失敗處理時,執行OutputCollector.fail(tuple);
作者:glowd
原文:
https://blog.csdn.net/zengqiang1/article/details/71124004