请说明在 Apache Storm 中,Spout 和 Bolt 各自承担什么职责?
考察说明
考查对 Storm 计算模型中数据源与处理单元基本职责的理解。
回答思路
- 【回答框架 1】Spout 是 Storm 中的消息源组件,负责从外部系统读取数据并转化为 Tuple 发射到拓扑中,不处理业务逻辑。
- 【回答框架 2】Bolt 是处理组件,接收 Tuple 后执行过滤、聚合、连接等计算,并可继续发射新 Tuple 给下游 Bolt。
- 【回答框架 3】拓扑中至少一个 Spout,多个 Bolt 通过流分组连接形成处理流水线,Spout 不直接传给 Spout,Bolt 不直接传给 Bolt。
- 【关键点 1】Spout 负责数据接入,Bolt 负责数据计算。
- 【关键点 2】Bolt 可以发射多个输出流。
- 【关键点 3】所有数据处理都在 Bolt 中完成。