Apache Storm - Fluxo de Trabalho
Um cluster de trabalho do Storm deve ter um nimbus e um ou mais supervisores. Outro nó importante é o Apache ZooKeeper, que será usado para a coordenação entre o nimbus e os supervisores.
Vamos agora dar uma olhada no fluxo de trabalho do Apache Storm -
Inicialmente, o nimbus aguardará que a “Topologia de tempestade” seja submetido a ele.
Depois que uma topologia é enviada, ele a processa e reúne todas as tarefas que devem ser realizadas e a ordem em que a tarefa deve ser executada.
Então, o nimbo distribuirá uniformemente as tarefas a todos os supervisores disponíveis.
Em um determinado intervalo de tempo, todos os supervisores enviarão batimentos cardíacos ao nimbo para informar que ainda estão vivos.
Quando um supervisor morre e não envia uma pulsação ao nimbo, ele atribui as tarefas a outro supervisor.
Quando o próprio nimbo morrer, os supervisores trabalharão na tarefa já atribuída sem qualquer problema.
Assim que todas as tarefas forem concluídas, o supervisor aguardará a entrada de uma nova tarefa.
Nesse ínterim, o nimbo morto será reiniciado automaticamente por ferramentas de monitoramento de serviço.
O nimbus reiniciado continuará de onde parou. Da mesma forma, o supervisor morto também pode ser reiniciado automaticamente. Como o nimbus e o supervisor podem ser reiniciados automaticamente e ambos continuarão como antes, o Storm tem a garantia de processar todas as tarefas pelo menos uma vez.
Depois que todas as topologias são processadas, o nimbus espera que uma nova topologia chegue e, da mesma forma, o supervisor espera por novas tarefas.
Por padrão, existem dois modos em um cluster Storm -
Local mode- Este modo é usado para desenvolvimento, teste e depuração porque é a maneira mais fácil de ver todos os componentes da topologia trabalhando juntos. Neste modo, podemos ajustar os parâmetros que nos permitem ver como nossa topologia é executada em diferentes ambientes de configuração do Storm. No modo Local, as topologias de tempestade são executadas na máquina local em uma única JVM.
Production mode- Neste modo, enviamos nossa topologia para o cluster de tempestade de trabalho, que é composto de muitos processos, geralmente em execução em máquinas diferentes. Conforme discutido no fluxo de trabalho da tempestade, um cluster de trabalho será executado indefinidamente até que seja encerrado.