Zum Hauptinhalt springen

Node

Ein Node ist ein einzelner laufender Store-Prozess. Ein Cluster besteht aus Nodes, die jeweils einen Partition-Replikat-Slot halten und jeweils auf einem Client-Port und einem Cluster-Port lauschen.

Was ein Node ist​

Ein Node ist ein Prozess, der am Cluster eines Stores teilnimmt. Er hält einen Teil der Daten, bedient Key/Value- und Koordinationsoperationen für die Partitionen, die er besitzt, repliziert diese Partitionen an Peers und beteiligt sich an der Fehlererkennung. Nodes präsentieren sich gegenüber Clients als ein logischer Store: Sie routen Requests nicht selbst an einen bestimmten Node — Sie verbinden sich mit einem beliebigen Node, und der Cluster ermittelt den Owner.

Sie betreiben einen oder mehrere Nodes pro Maschine. Die Anzahl der Node-Prozesse, die eine Maschine für einen Store betreibt, beträgt Partitionen pro Node × Replikationsfaktor, sodass eine einzelne Maschine mehrere Nodes hosten und während der Entwicklung einen Cluster aus mehreren Maschinen ersetzen kann.

Node-Identität​

Jeder Node hat einen clusterweiten Bezeichner der Form <host>-n<index> — der Host oder die Adresse der Maschine, dann -n, dann der Prozessindex auf dieser Maschine, beginnend bei 0. Die ersten beiden Nodes auf 192.168.1.1 sind beispielsweise 192.168.1.1-n0 und 192.168.1.1-n1. Alle Nodes auf derselben Maschine teilen sich einen Maschinenbezeichner, anhand dessen der Cluster Replikate auf anderen Maschinen als ihren Primary platziert.

Der Prozessindex bestimmt auch die anfängliche Rolle des Nodes. Ein Node, dessen Index ein Vielfaches des Replikationsfaktors ist, ist ein bevorzugter Primary — der Kandidat für den Besitz einer Partition, wenn die erste Partitionsübersicht erzeugt wird; die Indizes dazwischen sind Replikate für diesen Slot. Dies ist eine Platzierungspräferenz zum Zeitpunkt der Übersichtserzeugung, keine Laufzeitgarantie.

Die zwei Ports​

Ein Node lauscht auf zwei Ports, einem für Clients und einem für andere Nodes.

PortZweck
Client-Port (ab 7861)Hier verbindet sich Ihre Anwendung zum Lesen und Schreiben. Wird pro Node auf einer Maschine hochgezählt: 7861, 7862 usw.
Cluster-Port (ab 7811)Node-zu-Node-Verkehr: Membership-Gossip und Replikation. Wird pro Node hochgezählt: 7811, 7812 usw.

Die Trennung der beiden Ports sorgt dafür, dass Anwendungsverkehr und Cluster-interner Verkehr nie um denselben Kanal konkurrieren. Die Basis-Ports werden beim Erstellen des Stores festgelegt und pro Node-Prozess auf jeder Maschine hochgezählt.

Node im Vergleich zu den Begriffen, mit denen er verwechselt wird​

Ein Node ist ein Prozess, was ihn von der Maschine, auf der er läuft, und den Daten, die er hält, unterscheidet.

  • Ein Node ist kein Server. Ein Server ist die Maschine; ein Node ist ein Prozess, den dieser Server ausführt. Ein Server betreibt typischerweise mehrere Nodes.
  • Ein Node ist keine Partition. Eine Partition ist ein Ausschnitt des Keyspace; ein Node ist ein Prozess, der Partitionen hält — als Primary für manche und als Replikat für andere.
  • Ein Node ist nicht der Cluster. Der Cluster sind alle Nodes zusammen; ein Node ist ein Mitglied davon.
hinweis

Da ein Node einem Partition-Replikat-Slot entspricht, bedeutet das Wachsen eines Stores, weitere Nodes hochzufahren — im Supervisor-Modus geschieht das durch Hinzufügen eines ganzen Servers, der seinen Anteil an Node-Prozessen forkt.

Nächste Schritte​