Storm如何分配任务ID?

问题描述 投票:0回答:1

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

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

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

我不明白的是taskID什么时候会改变?在lifecycle of the topology的哪个阶段(理解起来不是很直观)是这个ID分配了什么逻辑?

谢谢

apache apache-storm topology
1个回答
0
投票

好吧,想通了。我认为。

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

并且有Spout A的10个线程,Bolt A的5个线程和Bolt B的1个执行程序线程,那么Bolt B的任务ID将是16。

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

© www.soinside.com 2019 - 2024. All rights reserved.