Storm如何分配任务ID?

时间:2018-02-15 08:14:55

标签: apache apache-storm topology

我一直试图了解Storm如何为螺栓分配任务ID。

从这个discussion

看来"任务ID是在拓扑创建时分配的并且是静态的。如果任务死亡/重新启动或在其他地方重新分配,它仍将具有相同的ID。"

确实,当我重新平衡/重新启动拓扑时,任务ID保持不变。

我不明白 任务ID何时会发生变化?lifecycle of the topology的哪个阶段(这是非常直观的理解)是这个ID分配了什么逻辑?

由于

1 个答案:

答案 0 :(得分:0)

好的,想通了。我认为。

最初认为它可能是随机的,但taskID是执行程序线程的实际数量,基于在拓扑的所有螺栓和喷口上配置的并行度。
如果拓扑是这样的: 喷嘴A - >螺栓A - > Bolt B

并且有Spout A的10个线程,Bolt A的5个线程和Bolt B的1个执行程序线程,然后Bolt B的任务ID为16.

只要整个拓扑中执行器数量的总配置保持不变,螺栓将始终分配此编号。