风暴 - 动态增加执行者

时间:2015-01-15 13:12:29

标签: apache-storm

在我看来,暴风雨有一些局限性。

您能告诉我以下几点有效且真实吗?

  1. 工人人数应少于或等于遗嘱执行人数
  2. 执行者数量应小于或等于任务数量
  3. 考虑到上述2点,重新平衡仅适用于将执行者或工作人员移动到其他节点等......
  4. 重新平衡无助于动态增加任务​​数
  5. 因此,根据以上几点,风暴无法完全扩展

1 个答案:

答案 0 :(得分:4)

您可以将tasks视为螺栓/喷口的运行实例。这是固定的(静态),并且在拓扑运行时永远不能更改?执行程序实际上是可以动态更改的线程。

如果你设置num tasks = 4和executors = 2,那么每个线程将运行2个任务。但是任务在执行程序上串行运行(每个线程一次会运行一个任务)。结果即使你有4个螺栓实例,所有这些实例都不会同时运行。那么使用的是什么呢?

为每个执行程序创建多个任务将使您可以灵活地使用rebalance命令更改执行程序的数量,而不会导致拓扑停止。因此,将来如果您向集群添加额外的节点(或出于任何原因),您可以轻松地将执行程序的数量更改为4,以便现在每个任务都有一个专用线程来处理(#threads <= #tasks的原因是{{1}}是的,因为拥有比任务更多的执行者不会带来任何好处)。所以现在你的喷口/螺栓(称为组件)的每4个实例可以同时并行运行。这就是暴风雨的规模。