我已查看此How does Storm handle fields grouping when you add more nodes?
但我的问题是: 例如,一旦bob转到一个任务,他将总是转到同一个任务,比方说,任务ID是X. 当我添加新节点时,将在新节点中启动更多新线程和新任务?如果是,bob将转到新线程和新任务? 如果它不是这样的话,那么会在新节点中启动线程吗?
我是风暴新人,希望我能清楚地描述我的怀疑。
答案 0 :(得分:0)
部署拓扑后,拓扑中的任务数不会更改。请参阅https://storm.apache.org/releases/2.0.0-SNAPSHOT/Understanding-the-parallelism-of-a-Storm-topology.html以更好地理解任务和线程之间的区别。
对于您的示例,假设Bob转到在工作程序Z中的执行程序中运行的任务X.当您添加新节点(并触发重新平衡)时,它可能的任务X被分配给工作人员Y上的不同执行程序我相信会发生的事情是Storm会在重新平衡期间为你的拓扑停止spouts,等待当前发出的元组完成处理,用新的赋值重启Z worker(没有X)并启动worker Y包含X的赋值。
下次处理Bob时,它将像往常一样转到任务X,任务现在正在其他地方运行。