Freigeben über


Unterstützung für mehrere Cluster

Von Bedeutung

Die Multiclusterunterstützung wurde in Orleans v2 entfernt. Die folgende Dokumentation bezieht sich auf Orleans v1.

Orleans v1.3.0 hat Unterstützung für das Verbunden mehrerer Orleans Cluster zu einem lose verbundenen Multicluster hinzugefügt, der als einzelner Dienst fungiert. Multicluster erleichtern die Geoverteilung als Dienst und erleichtern die Ausführung einer Orleans Anwendung in mehreren Rechenzentren auf der ganzen Welt. Sie können auch einen Multicluster innerhalb eines einzelnen Rechenzentrums ausführen, um eine bessere Fehler- und Leistungsisolation zu erzielen.

Alle Mechanismen sind mit besonderem Augenmerk auf Folgendes konzipiert:

  1. Die Kommunikation zwischen Clustern soll minimiert werden.
  2. Lassen Sie jeden Cluster autonom ausführen, auch wenn andere Cluster fehlschlagen oder nicht erreichbar sind.

Konfiguration und Betrieb

Im Folgenden dokumentieren wir, wie ein Multicluster konfiguriert und betrieben wird.

Kommunikation: Cluster kommunizieren über die gleichen Silo-zu-Silo-Verbindungen, die in einem Cluster verwendet werden. Um Status- und Konfigurationsinformationen auszutauschen, verwenden Cluster einen Gossip-Mechanismus und Gossip-Kanalimplementierungen.

Silokonfiguration: Sie müssen Silos konfigurieren, damit sie wissen, zu welchem Cluster sie gehören (jeder Cluster wird durch eine eindeutige Zeichenfolge identifiziert). Außerdem müssen Sie jeden Silo mit Verbindungszeichenfolgen konfigurieren, die es ermöglichen, beim Start eine Verbindung mit einem oder mehreren Gossip-Kanälen herzustellen.

Multicluster-Konfigurationsinjektion: Zur Laufzeit kann der Dienstanbieter die Multiclusterkonfiguration angeben und/oder ändern, die eine Liste von Cluster-IDs enthält, um anzugeben, welche Cluster Teil des aktuellen Multiclusters sind. Dazu rufen Sie die Verwaltungskomponente in einem der Cluster auf.

Multicluster-Grains

Im Folgenden wird die Verwendung von Multiclusterfunktionen auf Anwendungsebene dokumentiert.

Global-Single-Instance Grains: Sie können angeben, wann und wie Cluster ihre Kornverzeichnisse für eine bestimmte Kornklasse koordinieren sollen. Das GlobalSingleInstanceAttribute bedeutet, dass Sie das gleiche Verhalten wie bei der Ausführung von Orleans in einem einzelnen globalen Cluster wünschen: Leiten Sie alle Anfragen an eine einzelne Instanz des Grains weiter. Im Gegensatz dazu gibt das OneInstancePerClusterAttribute an, dass für jeden Cluster eine eigene unabhängige Aktivierung möglich ist. Dies ist geeignet, wenn Sie keine Kommunikation zwischen Clustern wünschen.

Log-view grains(not in v1.3.0): Ein spezieller Korntyp, der eine neue API verwendet, ähnlich der Ereignisbeschaffung, zum Synchronisieren oder Beibehalten des Kornzustands. Sie können ihn verwenden, um den Zustand eines Korns zwischen Clustern und mit Speicher automatisch und effizient zu synchronisieren. Da seine Synchronisierungsalgorithmen sicher für die Verwendung mit reentrant Grains sind und für Batching und Replikation optimiert sind, kann er besser als Standardgrains ausgeführt werden, wenn häufig auf ein Grain in mehreren Clustern zugegriffen wird und/oder häufig in den Speicher geschrieben wird. Die Unterstützung für Log-View-Getreide ist noch nicht Teil des Hauptzweigs. Wir verfügen über eine Vorabrelease mit Beispielen und einigen Dokumentationen in der geo-orleans Filiale. Derzeit wird es von einem Frühanwender in der Produktionsumgebung evaluiert.