在我看来,暴风雨有一些局限性。
您能告诉我以下几点有效且真实吗?
答案 0 :(得分:4)
您可以将tasks
视为螺栓/喷口的运行实例。这是固定的(静态),并且在拓扑运行时永远不能更改?执行程序实际上是可以动态更改的线程。
如果你设置num tasks = 4和executors = 2,那么每个线程将运行2个任务。但是任务在执行程序上串行运行(每个线程一次会运行一个任务)。结果即使你有4个螺栓实例,所有这些实例都不会同时运行。那么使用的是什么呢?
为每个执行程序创建多个任务将使您可以灵活地使用rebalance
命令更改执行程序的数量,而不会导致拓扑停止。因此,将来如果您向集群添加额外的节点(或出于任何原因),您可以轻松地将执行程序的数量更改为4,以便现在每个任务都有一个专用线程来处理(#threads <= #tasks
的原因是{{1}}是的,因为拥有比任务更多的执行者不会带来任何好处)。所以现在你的喷口/螺栓(称为组件)的每4个实例可以同时并行运行。这就是暴风雨的规模。