Verteilt betreiben
Dieser Artikel betreibt Clustron Zaris als verteilten Cluster. Ein Cluster verteilt den Store auf mehrere Nodes, wobei ein Node eine einzelne laufende Instanz des Stores ist. Die Nodes teilen Daten und koordinieren Arbeit über das Netzwerk.
Sie können einen Cluster auf einem Rechner oder über mehrere Rechner hinweg betreiben. In beiden Fällen bildet der Store einen Cluster; nur der Ort, an dem die Nodes laufen, und die Art der Verbindung zu den Managern unterscheiden sich.
Voraussetzungen
Bevor Sie beginnen, benötigen Sie ein installiertes Zaris, PowerShell 7 oder höher und die geöffneten Cluster-Ports: 7801 für den Manager, 7811 für den Node-zu-Node-Verkehr und 7861 für Client-Verbindungen. Unter Windows öffnet das Installationsprogramm den Bereich 7801–7899 für Sie.
Setup wählen
Jeder Rechner betreibt einen Manager, der den Cluster koordiniert. Der Unterschied zwischen den beiden Setups liegt darin, wie viele Nodes pro Rechner laufen und mit welchen Managern Sie sich verbinden.
| Aspekt | Einzelner Rechner | Mehrere Rechner |
|---|---|---|
| Nodes | Mehrere Nodes auf einem Rechner (PartitionsPerNode > 1) | Ein Node pro Rechner (PartitionsPerNode = 1) |
| Manager | Einer (localhost) | Einer pro Rechner, alle aufgelistet |
| Einsatzzweck | Entwicklung und Tests auf einem einzelnen System | Produktion über mehrere Server |
Mit dem Manager verbinden
Verbinden Sie die Admin-Shell mit dem Manager, bevor Sie den Store erstellen. Ein Workspace ist eine benannte Verbindung zu einem oder mehreren Managern, auf die die Admin-Cmdlets zielen; erstellen Sie einen und aktivieren Sie ihn mit -Activate. Verwenden Sie die Verbindung, die zu Ihrem Setup passt.
Für einen einzelnen Rechner verbinden Sie sich mit dem einen lokalen Manager:
New-ZrWorkspace local -Managers localhost:7801 -Activate
Für mehrere Rechner verbinden Sie sich mit dem Manager jedes Rechners, durch Kommas getrennt:
New-ZrWorkspace prod -Managers 10.0.0.11:7801,10.0.0.12:7801 -Activate
Falls bereits ein Workspace mit diesem Namen existiert oder ein Manager schon Teil eines anderen Workspace ist, aktivieren Sie ihn stattdessen oder treten ihm bei mit Use-ZrWorkspace <name> -Managers <managers>.
Wie die Teile zusammenpassen
Ein verteilter Cluster hat drei Rollen. Wenn Sie sie verstehen, werden die folgenden Schritte klarer:
- Manager koordinieren den Cluster. Pro Rechner läuft einer.
- Nodes sind die Store-Instanzen, die die Daten hosten.
- Clients verbinden sich mit dem Cluster, um Daten zu lesen und zu schreiben.
1. Den Store erstellen
Definieren Sie den Store mit New-ZrStore. PartitionsPerNode legt fest, wie viele Partition-Prozesse auf jedem Rechner laufen, und ReplicationFactor bestimmt, wie viele Kopien jeder Partition vorgehalten werden. Auf einem einzelnen Rechner setzen Sie PartitionsPerNode größer als 1, um mehrere Nodes zu betreiben; über mehrere Rechner hinweg belassen Sie den Default 1, sodass jeder verbundene Rechner einen Node betreibt. Ein einziger Aufruf von New-ZrStore erstellt den Store auf jedem verbundenen Manager.
New-ZrStore `
-Name TestStore `
-PartitionsPerNode 2 `
-ReplicationFactor 1 `
-BaseClusterPort 7811 `
-BaseClientPort 7861
Laufen mehrere Nodes auf einem Rechner, vergibt Zaris deren Ports automatisch durch Hochzählen der Startwerte. Aus BaseClusterPort 7811 werden 7811, 7812 usw., und aus BaseClientPort 7861 werden 7861, 7862 usw.
2. Den Cluster starten
Starten Sie den Store, um jeden konfigurierten Node online zu bringen und den Cluster zu bilden.
Start-ZrStore TestStore
3. Einen Client verbinden
Verbinden Sie einen Client mit Connect-ZrStore und geben Sie ihm einen Endpunkt als Ausgangspunkt.
Connect-ZrStore -ConnectionString "zaris://10.0.0.11:7861/TestStore"
Sie müssen nur einen Endpunkt angeben, den sogenannten Seed. Der Client nutzt den Seed, um die übrigen Nodes zu ermitteln, sodass Sie nicht jeden Server auflisten müssen. Sie können dennoch mehrere Endpunkte angeben — in der Connection String durch Kommas getrennt, zum Beispiel zaris://10.0.0.11:7861,10.0.0.12:7861/TestStore — für mehr Ausfallsicherheit, falls der Seed nicht verfügbar ist.
Was ist ein Endpunkt?
Ein Endpunkt ist ein Rechner oder eine IP-Adresse, verbunden mit einem Client-Port, in der Form <Machine/IP>:<ClientPort>. Der Rechner ist der Server, auf dem der Node läuft, und der Client-Port ist der, den Sie beim Erstellen des Stores mit -BaseClientPort festgelegt haben. Beispielsweise verbindet localhost:7861 mit einem Node auf dem lokalen Rechner, und 10.0.0.11:7861 verbindet mit einem Node auf einem Remote-Server.
4. Den Cluster verifizieren
Speichern Sie einen Wert und lesen Sie ihn zurück, um zu bestätigen, dass der Cluster funktioniert.
Set-ZrItem -Key "hello" -Value "world"
Get-ZrItem -Key "hello"
Was Sie gerade getan haben
Sie haben einen Zaris-Cluster gebildet, dessen Nodes Daten und Koordination teilen. Da der Zustand über die Nodes hinweg geteilt wird, unterstützt der Cluster auch verteilte Locks, Counter und Watch-Subscriptions. Von hier aus können Sie Ihr Setup in Konfigurationsdateien verlagern und den Store aus Ihren Anwendungen aufrufen.