一、Stream:被处理的数据
二、Spout:数据源
消息源Spout是Storm的Topology中的消息生产者(Tuple的创造者)。如图几个Spout接口都继承自IComponent
Spout从外部获取数据后,向Topology发出的Tuple可以是可靠的,也可以是不可靠的
可靠的:一个可靠的消息可以重新发射一个Tuple(如果该Tuple没有被Storm成功处理)
不可靠的:一个不可靠的消息源Spout一旦发出,一个Tuple就会彻底遗忘,不会在重新发了
Spout可以发射多个Stream,使用OutputFieldsDeclarer.declareStream来定义多个流,然后使用SpoutOutputCollector来发射指定的流
Spout中几个重要的方法:
1、open方法:当一个Task被初始化时会调用此open方法,一般都会在此方法中初始化发送Tuple的对象SpoutOutputCollector和配置对象TopologyContext
public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { this.collector = collector; }