Storm 实时计算完的结果一般会放到 Redis 中缓存。
-
集成 Redis 所需的 pom 文件:
<dependencies> <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.0.3</version> <scope>provided</scope> </dependency> <!-- 与redis集成 --> <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-redis</artifactId> <version>1.0.3</version> </dependency> </dependencies>
-
Spout 任务代码:
package storm; import java.util.Map; import java.util.Random; import org.apache.storm.spout.SpoutOutputCollector; import org.apache.storm.task.TopologyContext; import org.apache.storm.topology.OutputFieldsDeclarer; import org.apache.storm.topology.base.BaseRichSpout; import org.apache.storm.tuple.Fields; import org.apache.storm.tuple.Values; import org.apache.storm.utils.Utils; public class WordCountSpout extends BaseRichSpout { private static final long serialVersionUID = 1571765705181254611L; // 模拟数据 private String[] data = { "I love Beijing", "I love China", "Beijing is the capital of China"}; // 用于往下一个组件发送消息 private SpoutOutputCollector collector; public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { this.collector = collector; } public void nextTuple(