深入探究执行器与任务路由:Storm 内部机制解析
1. 执行器细节剖析
在 Storm 中,元组(tuples)在喷口(spout)和螺栓(bolt)实例之间的流动是一个关键过程。我们先来深入了解执行器的具体细节。
1.1 提交反馈监听器喷口执行器
数据通过提交反馈监听器喷口进入提交计数拓扑,该喷口监听包含单个提交消息的数据流。这个执行器不仅仅是一个单线程,实际上它由两个线程和一个队列组成:
- 主线程 :主要负责运行用户提供的代码,比如在 nextTuple 方法中编写的代码。
- 发送线程 :负责将元组传输到拓扑中的下一个螺栓。
- 队列 :用于将发出的元组从执行器中传输出去,它借助 LMAX Disruptor 库实现,以实现执行器之间的高性能消息传递。
下面是提交反馈监听器喷口执行器的工作流程:
graph LR
A[喷口读取提交消息] --> B[主线程处理发出的元组]
B --> C[主线程将发出的元组放入输出队列]
C --> D[发送线程从输出队列读取元组并发送]
1.2 同一 JVM 内两个执行器间的元组传输
当元组被放置在喷口的输出 Disruptor 队列后,发送线程会读取该元组,并通过传输函数将其发送到适当的执行器。由于提交反馈监听器喷口和电子邮件提取器螺栓都在同一个 JVM
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



