storm如何分配任务id?

vohkndzv  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(398)

我一直在试图理解storm是如何将任务id分配给螺栓的。
从这个讨论中可以看出,“任务ID是在拓扑创建时分配的,并且是静态的。如果任务死亡/重新启动或被重新分配到其他地方,它仍将具有相同的id。“
实际上,当我重新平衡/重新启动拓扑时,任务id保持不变。
我不明白的是taskid什么时候会改变?在拓扑的生命周期的哪个阶段(理解起来不是很直观)分配了这个id,是用什么逻辑分配的?
谢谢

but5z9lq

but5z9lq1#

好吧,我想出来了。我想。
最初认为它可能是随机的,但taskid是基于在拓扑的所有螺栓和喷口上配置的并行性的执行器线程的实际数目。
如果拓扑是这样的:喷口a->螺栓a->螺栓b
喷口a有10个螺纹,螺栓a有5个螺纹,螺栓b有1个执行器螺纹,那么螺栓b的任务id是16。
只要整个拓扑中执行器数量的总配置保持不变,螺栓将始终分配此编号。

相关问题