Storm实时处理框架(一)
一 、 是什么:
twitter开源的,分布式、流式计算、容错的实时计算系统。
二、有撒用:
实时性场景
对于大量存在的实时数据,如股票,实效性强,量大,需在流数据不断变化过程中实时计算分析,把结果推给用户。
能提供 :适应流式数据,不间断查询,稳定,可扩展性强、分布式计算、并行计算、热点数据缓存策略、服务端计算
三、优点:
免费开源根据需要自行扩展
速度快 每个节点每秒可处理100W个数据元组
分布式的,并行计算 ,能根据需要添加节点,水平伸缩
健壮性 ,无状态宕机重启即可用
具备容错能力,保证数据不丢失不重复
流式计算方式 1 永久运行 2 速度方向可控
基于nimbus与supervisor的一体高可用结构,简单配置,成熟的事物管理
高效的底层通信
多语言支持 如java、python 、Scala等
拓扑思想制定流处理规则,编程简单,能快速上手
四、设计思想
拓扑流式处理,如下图
(源自官网)
图中传达:
1、拓扑构成 :水源 、 水 、 接收处理者
2、一个水源可以分发到不同的接收者进行处理
3、一个接收者 可以接收不同水源过来的 水滴
4、多个接收处理者处理完后的水滴能汇聚到下一个处理者
五、几个核心概念
Topologies 拓扑,整个流程串起来,由spout 和 bolt 组成
Streams 消息流,抽象概念
Spouts 产生数据/水的东西,消息流的源头,Topology的消息生产者
Bolts 处理数据/水的东西,消息处理单元,可以做过滤、聚合、查询、写数据 到库中
Tuple 数据/水,消息/数据 传递的基本单元
基本架构图
欢迎互粉交流 春叁十娘