IRichBolt、IBatchBolt、IBasicBolt 、IWindowedBolt
public interface IRichBolt extends IBolt, IComponent {}//未新增函数
public abstract class BaseRichBolt extends BaseComponent implements IRichBolt {}
1.IRichBolt 调用OutputCollector的emit()方法后,需要执行手动调用ack方法或fail
2.IBasicBolt 调用BasicOutputCollector的emit()方法后,不需要手动调用ack方法
2.1 Bolt核心接口
public interface IBolt extends Serializable {
void prepare(Map stormConf, TopologyContext context, OutputCollector collector);
void execute(Tuple input);
void cleanup();
}
public interface IBatchBolt<T> extends Serializable, IComponent {
void prepare(Map conf, TopologyContext context, BatchOutputCollector collector, T id);
void execute(Tuple tuple);
void finishBatch();
}
public interface IBasicBolt extends IComponent {
void prepare(Map stormConf, TopologyContext context);
void execute(Tuple input, BasicOutputCollector collector);
void cleanup();
}
public interface IWindowedBolt extends IComponent {
void prepare(Map stormConf, TopologyContext context, OutputCollector collector);
void execute(TupleWindow inputWindow);
void cleanup();
TimestampExtractor getTimestampExtractor();
}