1.Storm概述
实时计算可以实时获取数据进行运算,得到计算结果,在很多实时性要求比较高的场景下有大量的应用.例如:微博热门话题榜单、电商网站实时推荐、地图路况信息。
实时计算和离线计算有较大的不同,实时计算强调实时性,数据不断流入,实时运算后结果实时反馈,实时计算没有数据积累的过程,有开始没有结束,如果不人为停止会一直运行下去。
Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。
Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个结点每秒可以处理数以百万计的消息)。
Storm的部署和运维都很便捷,而且更为重要的是可以使用多种编程语言来开发应用。
2.Storm核心组件
storm结构称为topology(拓扑),由stream(数据流),spout(喷嘴-数据流的生成者),bolt(阀门-数据流运算者)组成(参考图:Storm组成结构)。
a.Spout
Spout负责连接数据源,接收数据,转换为tuple向后发送,Spout只负责转化数据,不负责数据处理。Spout和业务是解耦的,一方面使Spout的逻辑简单清晰,另一方面因为没有耦合可以非常方便的实现Spout的复用。
b.Bolt
Bolt负责接收数据,执行运算,运算过后可以继续向后发送tuple,给其他零个或多个Bolt。
其中的运算包括 数据运算 数据的连接 数据写出等等功能
c.Topology
这样利用Spout和Bolt就可以组件起复杂的数据处理流网络,实现复杂的分布式实时运算。
这个由Spout和Bolt组成的复杂的数据流处理网络称之为一个topology。
- Topology
- Bolt
- Spout
- Storm核心组件
- Storm概述