首页 > 解决方案 > Apache Storm 并行性如何工作?

问题描述

我是 Apache Storm 的新手,想知道并行提示是如何工作的。

例如,我们有一个包含两个元组 <4>、<6> 的流,一个 spout,每个执行程序只有一个任务,我们有一个螺栓来对元组执行一些操作,并行提示为 2,所以我们有两个执行程序这个螺栓即A和B,关于这个,我有3个问题。

  1. 考虑到上述情况,有可能我们包含值 4 的元组由 A 处理,而另一个包含值 6 的元组由 B​​ 处理。
  2. 如果以这种方式进行处理,即问题(1)中提到的,那么它不会影响顺序重要的操作。
  3. 如果没有以这种方式进行处理,则意味着两个元组都将转到同一个执行程序,那么并行性有什么好处。

标签: apache-stormapache-storm-topology

解决方案


  1. 考虑到上述情况,有可能我们包含值 4 的元组由 A 处理,而另一个包含值 6 的元组由 B​​ 处理。

是的。

  1. 如果以这种方式进行处理,即问题(1)中提到的,那么它不会影响顺序重要的操作。

这取决于。您很可能可以控制 spout 中元组的顺序。如果顺序很重要,建议减少并行性或使用字段分组,以确保相互依赖的元组转到同一个执行程序。如果序列无关紧要,请使用 shuffleGrouping 或 localOrShuffleGrouping 从并行处理中获益。

  1. 如果没有以这种方式进行处理,则意味着两个元组都将转到同一个执行程序,那么并行性有什么好处。

如果两个元组都去同一个执行者,显然没有任何好处。


推荐阅读