Storm概念:storm具有黑盒属性,这保证了它的兼容性,它可以广泛的兼容各种各样的输入输出端口集成。
特点:
1、容错性好,单个节点任务失败不影响应用的整体运行。
2、简单易用,storm的编程原语很简单,开发人员只需要关注应用逻辑。
3、分布式,可轻松应对数据量大的场景
4、鲁棒性,保证消息处理
5、低延迟,可用于广告、搜索等需实时响应的场景
6、可扩展,随着storm的业务发展,系统可水平扩展
四大核心概念:
流(stream):
是storm的最基本的核心抽象概念之一,基本上它是无界的(无开始或结束),它是storm最重要的数据结构,假设可以并行创建流并由一组分布式组件并行处理,流的概念就可以跟这个合作关联的数据流来进行类比。在storm的上下文环境中,流是元组的无尽序列。
元组,是由键值对构成,它是形成流的数据,是storm重要的数据结构,是backtpye.storm.tuple包下的一个接口
申明输出字段:这是backtype.storm.topology下的一个接口,用于定义模式并声明相应的流。
Spout:
它是连接storm黑盒与外部源的组件,它读取元组后并将其推入拓扑种进行处理,Spout有两种类型,一种是可靠的Spout,它通过确认的的方法记住的它推入拓扑中去的所有元组,所以它能做到重放失败的元组,第二种是不可靠的Spout,它不记忆或跟踪它推入拓扑中的元组,所以不可能重放失败的元组。
Bolt:
它是处理过程的核心组件,Bolt是所有逻辑、处理、合并和转换的中心,Bolt接收到Spout提供的输入由元组组成的数据流,它一旦完成执行逻辑,再将处理后的元组发送下一个流,它具有接受和发送到多个流的能力。
拓扑:
整个storm应用程序被打包封装成storm拓扑