Apache Storm - 工作流程
一个正常工作的 Storm 集群应该有一个 nimbus 和一个或多个监督者。 另一个重要的节点是Apache ZooKeeper,它将用于nimbus和supervisor之间的协调。
现在让我们仔细看看 Apache Storm − 的工作流程
一开始,nimbus 会等待"Storm Topology"提交给它。
一旦提交 topology ,它将处理拓扑并收集所有要执行的任务以及任务执行的顺序。
然后,nimbus 会将任务平均分配给所有可用的主管。
在特定的时间间隔内,所有的监管者都会向 nimbus 发送心跳,告知他们还活着。
当主管死亡并且没有向 nimbus 发送心跳时,nimbus 会将任务分配给另一个主管。
当 nimbus 本身死亡时,主管将毫无问题地处理已分配的任务。
所有任务完成后,主管会等待新任务进来。
同时,死掉的nimbus会被服务监控工具自动重启。
重新启动的 nimbus 将从停止的地方继续。 同样,死掉的supervisor也可以自动重启。 由于 nimbus 和 supervisor 都可以自动重启,并且都会像以前一样继续,所以 Storm 保证至少处理一次所有任务。
处理完所有 topology 后,nimbus 会等待新的 topology 到达,类似地,监督者会等待新任务。
默认情况下,Storm 集群中有两种模式 −
本地模式 − 此模式用于开发、测试和调试,因为它是查看所有 topology 组件协同工作的最简单方法。 在这种模式下,我们可以调整参数,使我们能够看到我们的 topology 在不同的 Storm 配置环境中是如何运行的。 在本地模式下,Storm topology 单个 JVM 中的本地机器上运行。
生产模式 − 在这种模式下,我们将 topology 提交给工作的storm集群,该集群由许多进程组成,通常运行在不同的机器上。 正如在storm的工作流程中所讨论的,一个工作集群将无限期地运行,直到它被关闭。