BaseBasicBolt和BaseRichBolt的区别
Storm的Bolt有BaseBasicBolt和BaseRichBolt。
BaseRichBolt中,BasicOutputCollector在emit数据的时候,需要显示指定该数据的源tuple要加上第二个参数anchor tuple,以保持tracker链路。即collector.emit(oldTuple, newTuple)。并且需要在execute执行成功后调用OutputCollector.ack(tuple), 当失败处理时,执行OutputCollector.fail(tuple)。
BaseBasicBolt中,BasicOutputCollector在emit数据的时候,会自动和输入的tuple相关联,而在execute方法结束的时候那个输入tuple会被自动ack。
本文详细解析了Storm框架下BaseBasicBolt与BaseRichBolt的主要区别。BaseBasicBolt在数据发射时自动关联输入tuple,并在execute方法结束后自动ack;而BaseRichBolt需显式指定数据源tuple并手动调用ack或fail方法。
1760

被折叠的 条评论
为什么被折叠?



