我一直试图了解Storm如何为螺栓分配任务ID。
从这个discussion看来"任务ID是在拓扑创建时分配的并且是静态的。如果任务死亡/重新启动或在其他地方重新分配,它仍将具有相同的ID。"
确实,当我重新平衡/重新启动拓扑时,任务ID保持不变。
我不明白 任务ID何时会发生变化?在lifecycle of the topology的哪个阶段(这是非常直观的理解)是这个ID分配了什么逻辑?
由于
答案 0 :(得分:0)
好的,想通了。我认为。
最初认为它可能是随机的,但taskID是执行程序线程的实际数量,基于在拓扑的所有螺栓和喷口上配置的并行度。
如果拓扑是这样的:
喷嘴A - >螺栓A - > Bolt B
并且有Spout A的10个线程,Bolt A的5个线程和Bolt B的1个执行程序线程,然后Bolt B的任务ID为16.
只要整个拓扑中执行器数量的总配置保持不变,螺栓将始终分配此编号。