Aller au contenu principal

Cluster

Un cluster est l'ensemble des nœuds qui, ensemble, forment et exécutent un store. Les nœuds échangent leur appartenance via leur port cluster, élisent un leader et se présentent aux clients comme un store unique.

Ce qu'est un cluster​

Un cluster est le groupe en cours d'exécution de nœuds derrière un store. Chaque nœud est un processus ; le cluster est le tout qu'ils constituent ensemble. Les nœuds partagent les données du store et l'état de coordination, se coordonnent entre eux et se comportent comme une seule unité logique — les clients se connectent à n'importe quel nœud et le cluster achemine la requête vers le bon propriétaire.

Parce qu'un store est une unité logique et qu'un cluster est l'ensemble concret de processus qui le réalise, les deux se correspondent un à un : un store est soutenu par un cluster de nœuds. Ce qui change entre un petit et un grand store, c'est le nombre de nœuds dans son cluster, pas la façon de l'adresser.

Appartenance et leader​

Les nœuds d'un cluster se suivent les uns les autres. Ils échangent les informations d'appartenance — quels nœuds existent et s'ils sont sains — par gossip via leur port cluster (à partir de 7811), le même canal pair-à-pair qu'ils utilisent pour la réplication. Ceci est distinct du port client auquel les applications se connectent.

Parmi les membres vivants et sains, le cluster élit un leader. Le leader est le nœud responsable de générer la carte des partitions faisant autorité — l'attribution des partitions aux nœuds primaires et réplicas — et de la diffuser au reste. Seuls les membres vivants et faisant autorité apparaissent dans cette carte ; les nœuds suspectés, morts ou inaccessibles en sont exclus, et les états transitoires tels qu'un basculement en cours sont suivis séparément plutôt qu'encodés dans la carte.

Comment un cluster se forme et évolue​

Un cluster se forme lorsqu'un store est créé et que ses nœuds démarrent et se découvrent mutuellement. À mesure que l'appartenance change, le cluster se remodèle : le nombre total de partitions est recalculé à chaque changement d'appartenance comme partitions par nœud × nœuds vivants, de sorte qu'il suit la forme du cluster plutôt que de se figer au moment de la création. Lorsqu'un nœud rejoint, les partitions se rééquilibrent vers lui ; lorsque le nœud d'un primaire est perdu, son réplica est promu et le cluster reconstruit un nouveau réplica pour rétablir le facteur de réplication.

remarque

En mode superviseur, vous agrandissez le cluster en ajoutant un serveur entier avec Add-ZrServer, et non en ajoutant des nœuds individuels. Le serveur met en service sa part de processus de nœud, et la carte des partitions du cluster s'étend pour les inclure.

Le cluster par rapport aux termes qu'on lui confond​

Le cluster est l'appartenance en cours d'exécution ; les termes voisins sont soit la vue qu'en a le client, soit les pièces qu'il contient.

  • Un cluster n'est pas un espace de travail. Un espace de travail est un nom côté client désignant la façon d'atteindre les managers ; le cluster est l'ensemble réel des nœuds.
  • Un cluster n'est pas un serveur. Un serveur est une seule machine ; un cluster s'étend sur les nœuds répartis sur un ou plusieurs serveurs.
  • Un cluster n'est pas un store. Le store est l'unité de données logique que vous lisez et écrivez ; le cluster est le groupe de nœuds qui l'exécute.
TermePortéeRôle dans le modèle
Espace de travailCôté clientNomme les managers utilisés pour atteindre le cluster
ServeurUne machineExécute et possède les processus de nœud
ClusterUn groupe de nœudsForme et exécute un store ; élit un leader
NœudUn processusUn membre du cluster ; détient des partitions
StoreLogiqueLes données que le cluster présente aux clients
PartitionUne tranche de keyspaceUne unité que le cluster attribue aux nœuds
RéplicaUne copie de partitionLa redondance que le cluster maintient entre les nœuds

Étapes suivantes​