Aller au contenu principal

Nœud

Un nœud est un unique processus de store en cours d'exécution. Un cluster est constitué de nœuds, chacun occupant un emplacement de partition-réplica et écoutant sur un port client et un port de cluster.

Ce qu'est un nœud​

Un nœud est un processus qui participe au cluster d'un store. Il détient une part des données, sert les opérations clé-valeur et de coordination pour les partitions qu'il possède, réplique ces partitions vers ses pairs et prend part à la détection de défaillances. Les nœuds se présentent aux clients comme un seul store logique : vous ne routez pas vous-même les requêtes vers un nœud spécifique — vous vous connectez à n'importe quel nœud et le cluster résout le propriétaire.

Vous exécutez un ou plusieurs nœuds par machine. Le nombre de processus de nœuds qu'une machine exécute pour un store est partitions par nœud × facteur de réplication, de sorte qu'une seule machine peut héberger plusieurs nœuds et tenir lieu de cluster multi-machines pendant le développement.

Identité du nœud​

Chaque nœud possède un identifiant à l'échelle du cluster calculé comme <host>-n<index> — l'hôte ou l'adresse de la machine, puis -n, puis l'index du processus sur cette machine en commençant à 0. Par exemple, les deux premiers nœuds sur 192.168.1.1 sont 192.168.1.1-n0 et 192.168.1.1-n1. Tous les nœuds d'une même machine partagent un identifiant de machine, que le cluster utilise pour placer les réplicas sur des machines différentes de leur primaire.

L'index de processus détermine aussi le rôle initial du nœud. Un nœud dont l'index est un multiple du facteur de réplication est un primaire préféré — le candidat pour posséder une partition lors de la génération de la première carte de partitions ; les index intermédiaires sont des réplicas de cet emplacement. Il s'agit d'une préférence de placement au moment de la génération de la carte, pas d'une garantie à l'exécution.

Les deux ports​

Un nœud écoute sur deux ports, l'un pour les clients et l'autre pour les autres nœuds.

PortObjet
Port client (à partir de 7861)Là où votre application se connecte pour lire et écrire. Incrémenté par nœud sur une machine : 7861, 7862, et ainsi de suite.
Port de cluster (à partir de 7811)Trafic nœud à nœud : gossip d'appartenance et réplication. Incrémenté par nœud : 7811, 7812, et ainsi de suite.

Garder les deux ports séparés signifie que le trafic applicatif et le trafic intra-cluster ne se disputent jamais le même canal. Les ports de base sont définis à la création du store et incrémentés par processus de nœud sur chaque machine.

Le nœud par rapport aux termes que les lecteurs confondent avec lui​

Un nœud est un processus, ce qui le distingue de la machine sur laquelle il s'exécute et des données qu'il détient.

  • Un nœud n'est pas un serveur. Un serveur est la machine ; un nœud est un processus que ce serveur exécute. Un serveur exécute typiquement plusieurs nœuds.
  • Un nœud n'est pas une partition. Une partition est une tranche de l'espace de clés ; un nœud est un processus qui détient des partitions — comme primaire pour certaines et réplica pour d'autres.
  • Un nœud n'est pas le cluster. Le cluster est l'ensemble des nœuds réunis ; un nœud en est un membre.
remarque

Parce qu'un nœud correspond à un emplacement de partition-réplica, faire croître un store signifie démarrer davantage de nœuds — ce qui se fait en mode superviseur en ajoutant un serveur entier, qui bifurque (fork) sa part de processus de nœuds.

Étapes suivantes​