Apache Storm - 工作流程



一个工作的 Storm 集群应该有一个 nimbus 和一个或多个 supervisor。另一个重要的节点是 Apache ZooKeeper,它将用于 nimbus 和 supervisor 之间的协调。

现在让我们仔细看看 Apache Storm 的工作流程 -

  • 最初,nimbus 将等待“Storm Topology”提交给它。

  • 一旦提交了拓扑,它将处理拓扑并收集所有要执行的任务以及任务执行的顺序。

  • 然后,nimbus 将任务均匀地分配给所有可用的 supervisor。

  • 在特定的时间间隔内,所有 supervisor 将向 nimbus 发送心跳以通知它们仍然存活。

  • 当 supervisor 死亡并且没有向 nimbus 发送心跳时,nimbus 将任务分配给另一个 supervisor。

  • 当 nimbus 本身死亡时,supervisor 将在没有问题的情况下继续执行已分配的任务。

  • 一旦所有任务都完成了,supervisor 将等待新的任务到来。

  • 在此期间,死掉的 nimbus 将由服务监控工具自动重启。

  • 重启后的 nimbus 将从停止的地方继续。同样,死掉的 supervisor 也可以自动重启。由于 nimbus 和 supervisor 都可以自动重启,并且两者都将像以前一样继续,因此 Storm 保证至少处理一次所有任务。

  • 一旦所有拓扑都处理完毕,nimbus 将等待新的拓扑到达,同样 supervisor 也将等待新的任务。

默认情况下,Storm 集群中有两种模式 -

  • 本地模式 - 此模式用于开发、测试和调试,因为它是最简单的方法来查看所有拓扑组件协同工作的方式。在此模式下,我们可以调整参数,使我们能够查看拓扑在不同的 Storm 配置环境中如何运行。在本地模式下,storm 拓扑在本地机器上的单个 JVM 中运行。

  • 生产模式 - 在此模式下,我们将拓扑提交到正在工作的 storm 集群,该集群由许多进程组成,通常运行在不同的机器上。如 Storm 工作流程中所述,工作集群将无限期运行,直到关闭。

广告

© . All rights reserved.