Apache Storm - Flujo de trabajo
Un clúster de Storm en funcionamiento debe tener un nimbus y uno o más supervisores. Otro nodo importante es Apache ZooKeeper, que se utilizará para la coordinación entre el nimbus y los supervisores.
Echemos ahora un vistazo de cerca al flujo de trabajo de Apache Storm:
Inicialmente, el nimbus esperará a que se le envíe la “Topología de tormenta”.
Una vez que se envía una topología, procesará la topología y recopilará todas las tareas que se deben realizar y el orden en el que se ejecutará la tarea.
Luego, el nimbus distribuirá uniformemente las tareas a todos los supervisores disponibles.
En un intervalo de tiempo particular, todos los supervisores enviarán latidos al nimbus para informar que todavía están vivos.
Cuando un supervisor muere y no envía un latido al nimbus, el nimbus asigna las tareas a otro supervisor.
Cuando el nimbus mismo muere, los supervisores trabajarán en la tarea ya asignada sin ningún problema.
Una vez completadas todas las tareas, el supervisor esperará a que entre una nueva tarea.
Mientras tanto, las herramientas de supervisión del servicio reiniciarán automáticamente el nimbus muerto.
El nimbus reiniciado continuará desde donde se detuvo. Del mismo modo, el supervisor muerto también se puede reiniciar automáticamente. Dado que tanto el nimbus como el supervisor se pueden reiniciar automáticamente y ambos continuarán como antes, Storm tiene la garantía de procesar todas las tareas al menos una vez.
Una vez que se procesan todas las topologías, el nimbus espera que llegue una nueva topología y, de manera similar, el supervisor espera nuevas tareas.
De forma predeterminada, hay dos modos en un clúster de Storm:
Local mode- Este modo se utiliza para desarrollo, pruebas y depuración porque es la forma más fácil de ver todos los componentes de topología trabajando juntos. En este modo, podemos ajustar parámetros que nos permiten ver cómo se ejecuta nuestra topología en diferentes entornos de configuración de Storm. En el modo local, las topologías de tormenta se ejecutan en la máquina local en una única JVM.
Production mode- En este modo, enviamos nuestra topología al clúster de tormenta en funcionamiento, que se compone de muchos procesos, que generalmente se ejecutan en diferentes máquinas. Como se discutió en el flujo de trabajo de Storm, un clúster en funcionamiento se ejecutará indefinidamente hasta que se cierre.