Cluster Implementierungsübersicht
Der Cluster ist als unabhängige Plugin-Komponente innerhalb des eigenständigen Garnet-Servers konzipiert und implementiert. Er besteht aus den folgenden beiden Unterkomponenten:
-
Cluster-Sitzung (
IClusterSession) Unterkomponente Diese Komponente implementiert die RESP-Parsing-Logik für die relevanten Cluster-Befehle und die zugehörigen Primitiven, die zur Durchführung von Slot-Verifizierungsprüfungen und zur Generierung der entsprechenden Umleitungsnachrichten (z. B.-MOVED,-ASKusw.) verwendet werden. -
Cluster-Provider (
IClusterProvider) Unterkomponente Diese Komponente implementiert die Kernfunktionalitäten und Features des Clusters wie Gossip, Schlüsselmigration, Replikation und Sharding.
Die Entscheidung, den Cluster in einzelne Komponenten aufzuteilen, die vom eigenständigen Garnet-Server getrennt sind, dient einem doppelten Zweck. Erstens ermöglicht dies eine erste Implementierung, die wesentliche Cluster-Funktionen unterstützt, und gibt Entwicklern gleichzeitig die Möglichkeit, bei Bedarf neue Funktionalitäten beizutragen. Zweitens können Entwickler ihre eigene Cluster-Implementierung nutzen, wenn sie dies für notwendig halten oder unsere Standardimplementierung ihren Bedürfnissen nicht entspricht.