22、深入探究执行器:Storm 内部数据流转与队列管理

Storm执行器与队列管理解析

深入探究执行器:Storm 内部数据流转与队列管理

1. 执行器细节剖析

1.1 提交反馈监听器 Spout 的执行器细节

数据通过提交反馈监听器 Spout 进入提交计数拓扑,该 Spout 监听包含单个提交消息的数据流。这个执行器不仅仅是单个线程,实际上由两个线程和一个队列组成:
- 主线程 :主要负责运行用户提供的代码,例如 nextTuple 方法中的代码。
- 发送线程 :负责将元组传输到拓扑中的下一个 Bolt。
- 队列 :用于将发出的元组从执行器中传输出去,该队列基于 LMAX Disruptor 库实现,用于实现执行器之间的高性能消息传递。

下面是数据在 Spout 执行器内的处理流程:

graph LR
    A[Spout 从包含提交消息的队列读取消息] --> B[主线程处理发出的元组]
    B --> C[主线程将发出的元组放入输出 Disruptor 队列]

1.2 同一 JVM 内两个执行器之间的元组传输

当元组被放入 Spout 的输出 Disruptor 队列后,发送线程会从该队列读取元组,并通过传输函数将其发送到适当的执行器。由于提交反馈监听器 Spout 和电子邮件提取器 Bolt 在同一个 JVM 中,这种传输是本地传输,执行器的发送线程直接将输出元组发布到下一个执行器,几乎没有开销,速度极快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值