Zum Hauptinhalt springen

Cluster

Ein Cluster ist die Menge der Nodes, die gemeinsam einen Store bilden und betreiben. Die Nodes tauschen über ihren Cluster-Port die Mitgliedschaft aus, wählen einen Leader und präsentieren sich Clients als ein einziger Store.

Was ein Cluster ist​

Ein Cluster ist die laufende Gruppe von Nodes hinter einem Store. Jeder Node ist ein Prozess; der Cluster ist das Ganze, das sie zusammen ergeben. Die Nodes teilen sich die Daten und den Koordinationszustand des Stores, stimmen sich untereinander ab und verhalten sich wie eine logische Einheit — Clients verbinden sich mit einem beliebigen Node, und der Cluster leitet die Anfrage an den richtigen Besitzer weiter.

Da ein Store eine logische Einheit ist und ein Cluster die konkrete Menge von Prozessen, die ihn realisiert, entsprechen sich beide eins zu eins: Ein Store wird von einem Cluster aus Nodes getragen. Zwischen einem kleinen und einem großen Store ändert sich die Anzahl der Nodes in seinem Cluster, nicht die Art, ihn anzusprechen.

Mitgliedschaft und Leader​

Die Nodes eines Clusters halten einander im Blick. Sie tauschen Mitgliedschaftsinformationen — welche Nodes existieren und ob sie gesund sind — per Gossip über ihren Cluster-Port (ab 7811) aus, denselben Peer-to-Peer-Kanal, den sie für die Replikation nutzen. Dieser ist vom Client-Port getrennt, über den sich Anwendungen verbinden.

Aus den lebenden, gesunden Mitgliedern wählt der Cluster einen Leader. Der Leader ist der Node, der die maßgebliche Partitions-Map erzeugt — die Zuordnung von Partitionen zu Primary- und Replica-Nodes — und sie an alle übrigen verteilt. In dieser Map erscheinen nur lebende, maßgebliche Mitglieder; verdächtige, tote oder nicht erreichbare Nodes sind ausgeschlossen, und vorübergehende Zustände wie ein laufendes Failover werden separat verfolgt, statt in die Map kodiert zu werden.

Wie ein Cluster entsteht und sich ändert​

Ein Cluster entsteht, wenn ein Store erstellt wird und seine Nodes starten und einander finden. Ändert sich die Mitgliedschaft, formt sich der Cluster neu: Die Gesamtzahl der Partitionen wird bei jeder Mitgliedschaftsänderung als Partitionen pro Node × lebende Nodes neu berechnet, folgt also der Form des Clusters, statt bei der Erstellung einzufrieren. Tritt ein Node bei, werden Partitionen auf ihn rebalanciert; geht der Node eines Primary verloren, wird sein Replica befördert, und der Cluster baut ein neues Replica auf, um den Replikationsfaktor wiederherzustellen.

hinweis

Im Supervisor-Modus vergrößern Sie den Cluster, indem Sie mit Add-ZrServer einen ganzen Server hinzufügen, nicht einzelne Nodes. Der Server startet seinen Anteil an Node-Prozessen, und die Partitions-Map des Clusters erweitert sich um sie.

Cluster im Vergleich zu verwechselbaren Begriffen​

Der Cluster ist die laufende Mitgliedschaft; die benachbarten Begriffe sind entweder die Sicht des Clients darauf oder die Teile darin.

  • Ein Cluster ist kein Workspace. Ein Workspace ist ein clientseitiger Name dafür, wie die Manager erreicht werden; der Cluster ist die tatsächliche Menge der Nodes.
  • Ein Cluster ist kein Server. Ein Server ist eine Maschine; ein Cluster umfasst die Nodes über einen oder mehrere Server.
  • Ein Cluster ist kein Store. Der Store ist die logische Dateneinheit, die Sie lesen und schreiben; der Cluster ist die Gruppe von Nodes, die ihn betreibt.
BegriffGeltungsbereichRolle im Modell
WorkspaceClientseitigBenennt die Manager, über die der Cluster erreicht wird
ServerEine MaschineBetreibt und besitzt Node-Prozesse
ClusterEine Gruppe von NodesBildet und betreibt einen Store; wählt einen Leader
NodeEin ProzessEin Mitglied des Clusters; hält Partitionen
StoreLogischDie Daten, die der Cluster den Clients präsentiert
PartitionEin Ausschnitt des SchlüsselraumsEine Einheit, die der Cluster Nodes zuweist
ReplicaEine PartitionskopieRedundanz, die der Cluster über Nodes hinweg aufrechterhält

Nächste Schritte​