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.