Apache storm 在暴风雨中不提任务有什么关系

Apache storm 在暴风雨中不提任务有什么关系,apache-storm,Apache Storm,我只是想知道在storm中使用任务与输出或性能的实际相关性是什么,因为它不必与并行性有任何关系,因此为组件选择多个任务会对输出产生任何变化吗?或者,如果我在tasks>executors中选择no,那么流程或输出会有什么不同呢。 如果有人能给我解释一下,不管有没有例子,都会很有帮助 比如说- 我有一个带有3个螺栓和1个喷嘴的拓扑结构,我只提到了2个工人端口,这意味着所有这4个组件(1个点和3个螺栓将仅在这些工人身上运行)现在我提到了第一个螺栓的2个执行器,这意味着该螺栓的2个螺纹将并行运行。现在

我只是想知道在storm中使用任务与输出或性能的实际相关性是什么,因为它不必与并行性有任何关系,因此为组件选择多个任务
会对输出产生任何变化吗?或者,如果我在
tasks>executors中选择no,那么流程或输出会有什么不同呢。
如果有人能给我解释一下,不管有没有例子,都会很有帮助

比如说- 我有一个带有3个螺栓和1个喷嘴的
拓扑结构,我只提到了
2个工人端口
,这意味着所有这4个组件(1个点和3个螺栓将仅在这些工人身上运行)现在我提到了第一个螺栓的
2个执行器
,这意味着该螺栓的2个螺纹将并行运行。现在,如果我提到task=3的
编号
,这对输出或性能有何影响?

如果我提到了
字段分组
,那么分组将出现在不同的执行器中(如果我错了,请纠正我)

你读过这篇文章吗

举个例子:如果设置
#tasks=3
并使用
字段分组指定
2个执行者
,数据将被划分为3个子流(#tasks)。2个子流流向一个执行器,第三个子流流向第二个执行器。但是,使用3个任务和2个执行器,允许您使用
重新平衡
命令将执行器的数量增加到3个

只要您不想在执行期间增加执行者的数量,#tasks就应该等于#executors(即,只是不指定#tasks)


对于您的示例(如果您不想在运行时更改并行性),很可能会导致两个执行器的工作负载不平衡(一个执行器处理了33%的数据,另一个执行器处理了66%)。然而,这只是一个特殊情况下的问题,而不是一般情况下的问题。如果您假设您有4个任务,每个执行器处理2个子流,并且没有出现不平衡。

感谢Matthias的回答,我明白了。我还有一个问题-你能告诉我,如果我没有明确提到任何字段分组,那么默认的分配策略是什么?我不确定我是否理解这个问题。。。如果将螺栓连接到生成器(喷口或螺栓),则始终需要明确指定要使用的连接模式。因此,没有默认策略。请看