Apache Storm - Architecture de cluster

L'un des principaux points forts d'Apache Storm est qu'il s'agit d'une application distribuée à tolérance de pannes, rapide et sans «point de défaillance unique» (SPOF). Nous pouvons installer Apache Storm dans autant de systèmes que nécessaire pour augmenter la capacité de l'application.

Voyons comment le cluster Apache Storm est conçu et son architecture interne. Le diagramme suivant illustre la conception du cluster.

Apache Storm a deux types de nœuds, Nimbus (nœud maître) et Supervisor(nœud de travail). Nimbus est le composant central d'Apache Storm. Le travail principal de Nimbus est d'exécuter la topologie Storm. Nimbus analyse la topologie et rassemble la tâche à exécuter. Ensuite, il distribuera la tâche à un superviseur disponible.

Un superviseur aura un ou plusieurs processus de travail. Le superviseur déléguera les tâches aux processus de travail. Le processus de travail génère autant d'exécuteurs que nécessaire et exécute la tâche. Apache Storm utilise un système de messagerie interne distribué pour la communication entre nimbus et les superviseurs.

Composants La description
Nimbus Nimbus est un nœud maître du cluster Storm. Tous les autres nœuds du cluster sont appelés commeworker nodes. Le nœud maître est chargé de distribuer les données entre tous les nœuds de travail, d'attribuer des tâches aux nœuds de travail et de surveiller les échecs.
Superviseur Les nœuds qui suivent les instructions données par le nimbus sont appelés superviseurs. UNEsupervisor a plusieurs processus de travail et il régit les processus de travail pour accomplir les tâches assignées par le nimbus.
Processus de travail Un processus de travail exécutera des tâches liées à une topologie spécifique. Un processus de travail n'exécute pas une tâche par lui-même, mais créeexecutorset leur demande d'effectuer une tâche particulière. Un processus de travail aura plusieurs exécuteurs.
Exécuteur Un exécuteur n'est rien d'autre qu'un seul thread engendré par un processus de travail. Un exécuteur exécute une ou plusieurs tâches, mais uniquement pour un bec ou un boulon spécifique.
Tâche Une tâche effectue un traitement de données réel. Donc, c'est soit un bec, soit un boulon.
Cadre ZooKeeper

Apache ZooKeeper est un service utilisé par un cluster (groupe de nœuds) pour se coordonner entre eux et maintenir les données partagées avec des techniques de synchronisation robustes. Nimbus est sans état, il dépend donc de ZooKeeper pour surveiller l'état du nœud de travail.

ZooKeeper aide le superviseur à interagir avec le nimbus. Il est responsable de maintenir l'état de nimbus et de superviseur.

La tempête est de nature apatride. Même si la nature sans état a ses propres inconvénients, elle aide en fait Storm à traiter les données en temps réel de la meilleure manière possible et la plus rapide.

Cependant, Storm n'est pas entièrement apatride. Il stocke son état dans Apache ZooKeeper. Étant donné que l'état est disponible dans Apache ZooKeeper, un nimbus défaillant peut être redémarré et mis en service là où il est parti. Habituellement, les outils de surveillance des services commemonit surveillera Nimbus et le redémarrera en cas de panne.

Apache Storm possède également une topologie avancée appelée Trident Topologyavec la maintenance de l'état et il fournit également une API de haut niveau comme Pig. Nous discuterons de toutes ces fonctionnalités dans les prochains chapitres.