Apache Storm - Flusso di lavoro
Un cluster Storm funzionante dovrebbe avere un nimbus e uno o più supervisori. Un altro nodo importante è Apache ZooKeeper, che verrà utilizzato per il coordinamento tra il nimbus e i supervisori.
Diamo ora uno sguardo da vicino al flusso di lavoro di Apache Storm -
Inizialmente, il nimbus attenderà che la "Topologia tempesta" gli venga sottoposta.
Una volta inviata una topologia, elaborerà la topologia e raccoglierà tutte le attività che devono essere eseguite e l'ordine in cui l'attività deve essere eseguita.
Quindi, il nimbus distribuirà uniformemente i compiti a tutti i supervisori disponibili.
In un determinato intervallo di tempo, tutti i supervisori invieranno i battiti cardiaci all'aureola per informare che sono ancora vivi.
Quando un supervisore muore e non invia un battito cardiaco al nimbus, il nimbus assegna i compiti a un altro supervisore.
Quando il nimbus stesso muore, i supervisori lavoreranno sul compito già assegnato senza alcun problema.
Una volta completate tutte le attività, il supervisore attenderà l'arrivo di una nuova attività.
Nel frattempo, il nimbus morto verrà riavviato automaticamente dagli strumenti di monitoraggio del servizio.
Il nimbus riavviato continuerà da dove si era fermato. Allo stesso modo, anche il supervisore morto può essere riavviato automaticamente. Poiché sia il nimbus che il supervisore possono essere riavviati automaticamente ed entrambi continueranno come prima, è garantito che Storm elabori tutte le attività almeno una volta.
Una volta che tutte le topologie sono state elaborate, il nimbus attende l'arrivo di una nuova topologia e allo stesso modo il supervisore attende nuovi compiti.
Per impostazione predefinita, ci sono due modalità in un cluster Storm:
Local mode- Questa modalità viene utilizzata per lo sviluppo, il test e il debug perché è il modo più semplice per vedere tutti i componenti della topologia che lavorano insieme. In questa modalità, possiamo regolare i parametri che ci consentono di vedere come la nostra topologia viene eseguita in diversi ambienti di configurazione Storm. In modalità locale, le topologie Storm vengono eseguite sulla macchina locale in una singola JVM.
Production mode- In questa modalità, inviamo la nostra topologia al cluster working storm, che è composto da molti processi, solitamente in esecuzione su macchine diverse. Come discusso nel flusso di lavoro di Storm, un cluster funzionante verrà eseguito a tempo indeterminato fino a quando non verrà arrestato.