Storm-核心概念
核心概念
- Topologies 拓扑,将整个流程串起来
- 计算拓扑,由spout和bolt组成
- 类似于MR作业
- MR最终要完成,topology会一直运行除非自己杀死
- 对应的资源
- TOPOLOGYBUILDER
- Running topologies on a production cluster
- Local mode
- Streams 流,数据流,水流
- 消息流,抽象概念,没有边界的tuple构成
- 一个Stream是由一系列有序的tuple组成。
- tuple包含int,long,shorts,byte,string,double floats and byte arrays
- 对应资源
- Tuple
- OutputFieldsDeclarer
- Serialization
- Spouts 产生数据/水流的东西
- 消息流的源头,Topology的消息生产者
- 可靠和不可靠
- 可以发送多个stream
- 最主要的方法nextTuple,发送新的tuple到拓扑里面或者简单的返回什么都不做
- ack 和fail方法 保证数据是否正常处理。自动调用
- 仅仅会在可靠的spout中调用
- 对应的资源
- IRichSpout
- 如何保证消息被处理,ack和fail
- Bolts 处理数据/水流的东西
- 消息处理单元,可以做过滤,聚合,查询/写数据库的操作
- 主要方法
- execute 执行
- 在bolt中启动多线程
- 对应的资源
- IRichBolt
- IbasicBolt
- OutputCollector
- Tuple 数据/水
- 消息/数据 传递的基本单元
- Stream Grouping
- Reliability 可靠性
- Task
- Workers
- 每一个worker进程是一个物理JVM进程,执行多有拓扑的子集
核心概念讲解-地铁运行模型
- 地铁由多个车厢构成;
- 车厢中有很多乘客
- 每个站点有不少的人上车和下车
- 地铁有始发站,经停站,终点站;
- 地铁停靠站通过地铁调度中心进行控制
storm
- 流理解成地铁
- tuple数据----人
- 在bolt中处理业务逻辑,其实就是针对tuple进行处理
流程图