概述
Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。Storm的处理速度非常惊人:经测试,每个节点每秒可以处理100万个数据元组。
设计思想
在Storm中也有对流(Stream)的抽象,流是一个不间断的、无界的连续Tuple。Tuple是包含一个或多个键值对的集合。
Storm认为每个流都有一个Stream源,也就是原始元组的源头,所以它将这个源头抽象为Spout(水龙头),Spout可能连接Twitter API并不断发出推文(Tweet),也可能从某个队列中不断读取队列元素并装配为Tuple发射。
有了源头即Spout也就是有了流,同样的思想,Twitter将流的中间状态转换抽象为Bolt,Bolt可以消费任意数量的输入流,只要将流方向导向该Bolt,同时它也可以发送新的流给其他Bolt使用,这样一来,只要打开特定的Spout(管口),再