Lastspitzen, Ausfälle und Systemausfälle sind mit hoher Wahrscheinlichkeit Teil Ihres Cache-Clusters und müssen sich keine Sorgen machen. Allerdings ist es definitiv so, keine Problemumgehung für solche Situationen zu haben! Ausfallsicherheit gegenüber solchen risikoverursachenden Faktoren ist die Hauptanforderung Ihres Caching-Clusters, sodass die Wiederherstellung nach Ausfallszenarien immer praktisch ist. In einigen Situationen kann der Datenverlust vernachlässigbar sein und kann leicht behandelt werden, aber in einigen Fällen, in denen es um unternehmenskritische Daten geht, können Datenschutz und Verfügbarkeit nicht als zweitrangige Anforderung gestellt werden.
NCache Verliert Ihre Daten NICHT!
NCache, ein verteilter In-Memory-Daten-Caching-Speicher, bietet eine Architektur, in der eine hohe Datenverfügbarkeit bei Spitzenlasten oder Ausfallzeiten gewährleistet ist. Ihre Daten bleiben zu 100 % verfügbar, selbst in Katastrophensituationen, wie z. B. wenn ein Knoten das Cluster dauerhaft verlässt. NCache wurde entwickelt, um das Hinzufügen oder Entfernen eines Serverknotens zur Laufzeit zu bewältigen.
Sie können Cache-Konfigurationen auch zur Laufzeit mit den aktuell anwendbaren Funktionen ändern. Mit der Peer-to-Peer-Architektur NCache erspart Ihnen das größte Problem des „Single Point of Failure“. Die Failover-Unterstützung wird nicht nur innerhalb des Cache-Clusters bereitgestellt, sondern auch mit den mit dem Cache verbundenen Clients. Es macht NCache hochdynamisch und extrem zuversichtlich, keinen Datenverlust zu beanspruchen. Schauen wir uns zum Verständnis die folgende Abbildung an NCachedie Verfügbarkeit.
Schritt 1 zeigt einen verbundenen Cluster, in dem Clients mit dem verbunden sind NCache Cluster mit Peer-to-Peer-Architektur.
Abbildung 2 zeigt einen Knoten, der den Cache-Cluster aufgrund einer Katastrophe verlässt.
Die folgende Abbildung zeigt, dass der Cache-Cluster die Daten zwischen den verbleibenden Knoten verteilt und die Clients mit dem Cache-Cluster verbunden bleiben.
Caching-Topologien
NCache bietet verschiedene Topologien für die Datenspeicherung, sodass Sie die Daten gemäß Ihren eigenen Anforderungen speichern können. Sehen Sie sich die folgenden Topologien an:
- Gespiegelte Topologie: Wie der Name andeutet, gespiegelt Topologie bezeichnet einen Cluster mit zwei Knoten, von denen einer der aktive Knoten ist, der mit dem passiven Knoten gespiegelt ist.
- Replizierte Topologie: In repliziert Topologie werden auf jedem Knoten die gleichen Daten repliziert.
- Partitionierter Cache: Im partitioniert Topologie hat jeder Serverknoten eine Partition und die Daten werden gleichmäßig zwischen dem Knoten und seiner Partition aufgeteilt.
- Partition des Replikat-Cache: Partition der Replik Die Topologie ist die schnellste Topologie, da sie die Replikation jeder Partition beibehält. Jede Partition wird auf einem anderen Server repliziert und die Replikate sind passiv, was bedeutet, dass Clients keine Verbindung zu ihnen herstellen können.
Lassen Sie uns nun die Datenverfügbarkeit in Bezug auf Caching-Topologien erörtern. Jede oben erwähnte Topologie hat unterschiedliche Eigenschaften. Replizierte Topologie stellt sicher, dass die Daten auf allen Knoten repliziert werden, wodurch die Daten zu 100 % verfügbar bleiben. In Partitionierte Topologie, wenn ein einzelner Knoten ausfällt, geht ein Teil der Daten verloren. Allerdings hinein Partitioniertes Replikat Topologie, da jede Partition ein Replikat hat, sind die Daten, wenn ein Knoten verloren geht redisauf die verbleibenden Knoten verteilt. Dies macht die POR-Topologie hinsichtlich der Datenverfügbarkeit zur effizientesten. Die asynchrone partitionierte Replikattopologie verfügt über eine Datenreplikation im Hintergrund, die zu Datenverlust führen kann. Bei der synchronen POR-Topologie tritt jedoch kein Datenverlust auf, da die Replikation über die Clientanwendung erfolgt.
Caching-Topologien Selbstheilendes dynamisches Clustering NCache Architektur
Peer-to-Peer-Architektur in NCache
Peer-to-Peer-Architektur bedeutet, dass es kein Konzept von Master- oder Slave-Knoten gibt NCache. Ein Cluster wird durch eine klar definierte Gruppe von Servern gebildet, und jeder Server ist mit jedem anderen Server im Cache-Cluster verbunden. Es gibt einen Koordinatorknoten, der für die Verwaltung des gesamten Clusters verantwortlich ist. Ein Koordinatorknoten ist der älteste Knoten in Bezug auf die Knoten, die dem Cluster beitreten. Wenn ein Koordinatorknoten den Cluster verlässt, wird der nächste höchstrangige Knoten zum Koordinatorknoten. Der Koordinatorknoten teilt auch die gesamten Informationen der Datenverteilung auf die anderen Knoten, so dass der nächste Koordinatorknoten bereits alles über die Datenverteilung weiß.
Die Datenverteilung erfolgt auf Basis von Buckets. Ein einzelner Bucket ist die Mindesteinheit der Datenverteilung. Alle Buckets werden gleichmäßig auf die Knoten im Cache-Cluster verteilt.
Beispielsweise speichert ein Cache-Cluster mit zwei Knoten und 1000 Daten-Buckets 500 Daten-Buckets auf jedem Knoten. NCache verteilt die Daten basierend auf einer Verteilungskarte. Die Verteilungskarte ordnet die Buckets den Knoten zu, auf denen sich die Buckets befinden.
Der Prozess der Datenübertragung von einem Knoten zu einem anderen Knoten wird aufgerufen staatliche Übertragung. Er überträgt die Daten Bucket für Bucket vom bestehenden (Quellknoten) zum neuen (zugewiesenen) Knoten. Während der Zeit, während der die Zustandsübertragung stattfindet, werden alle Operationen, die fehlschlagen/sich auf einen gegebenen Bucket beziehen, an den Quellenknoten geleitet, bis der gesamte Zustandsübertragungsprozess stattgefunden hat. Sobald der Zustandsübertragungsprozess abgeschlossen ist, werden alle Knoten darüber informiert, dass die Zustandsübertragung abgeschlossen ist.
Laufzeiterkennung innerhalb von Cluster und Clients
NCache zeichnet sich durch die Datenverfügbarkeit für seine dynamischen Funktionen aus. Wenn ein Knoten dem Cache-Cluster beitritt, werden alle Server- und Client-Knoten zur Laufzeit mit diesen Informationen versorgt, wodurch die Datenverteilung stattfindet. Der Koordinatorknoten stellt sicher, dass ein neuer Server dem Cache-Cluster beigetreten ist, und fügt den neuen Serverknoten in die Knotenliste des Cache-Clusters ein. Er informiert auch alle anderen Serverknoten über einen neuen Serverknoten, der in den Cache-Cluster eintritt. Danach erwirbt der neue Serverknoten eine TCP-Verbindung mit allen anderen Serverknoten. Daher hat der neue Server keine Informationen über die vorhandenen Cache-Server-Knoten, bis er dem Cache-Cluster beigetreten ist.
In ähnlicher Weise werden auch die Cache-Clients zur Laufzeit erkannt. Ein Client, der sich mit dem Cache-Cluster verbindet, muss nicht über den gesamten Cache-Cluster und alle Serverknoten Bescheid wissen. Es benötigt nur die Informationen eines einzelnen laufenden Cache-Servers. Es verwendet diese Verbindung, um zu sehen, zu welchen Cache-Servern eine Verbindung hergestellt werden soll. Im Folgenden sind die wichtigen Informationen aufgeführt, die dem Client nach dem Verbindungsaufbau bereitgestellt werden:
- Karte der Datenverteilung: Die Karte, die Informationen darüber enthält, welche Daten sich auf welchem Serverknoten befinden, sodass auf sie leicht zugegriffen werden kann.
- Caching-Topologie: Die Informationen zur Cache-Topologie, um zu bestimmen, mit welchem Cache-Server eine Verbindung hergestellt werden soll.
- Informationen zur Cluster-Mitgliedschaft: Die Informationen über die Mitglieder des Clusters, wie z. B. ein neuer Knoten, der in den Cluster eintritt, oder ein vorhandener Knoten, der einen Cluster verlässt.
- Informationen zu Komprimierung oder Verschlüsselung.
- Serialisierungsinformationen: Binär oder JSON.
Dynamisches Clustering Split Brain Automatische Wiederherstellung Wartungsmodus
Verbindungs-Failover-Unterstützung
NCache Cluster ist ein dynamischer, sich selbst reparierender Cluster und behandelt jedes Failover zur Laufzeit. Zwei Arten von Failover-Unterstützung werden von bereitgestellt NCache:
- Failover-Unterstützung innerhalb des Clusters: Wenn ein Cache-Server den Cluster zu irgendeinem Zeitpunkt verlässt, heilt sich der Cache-Cluster sehr effizient selbst vom Ausfall eines Cache-Servers. Um es weiter zu erklären, bedeutet dies, dass der Cache-Cluster die Daten-Buckets unter den verbleibenden Cache-Server-Knoten aufteilt und alle Cache-Server-Knoten über die neue Verteilung aktualisiert.
- Failover-Unterstützung innerhalb des Clients: Ähnlich wie Cache-Server passen sich auch Cache-Clients an die anderen vorhandenen Cache-Server an. Wenn ein Client mit einem Cache-Server verbunden ist und die Verbindung aufgrund der Nichtverfügbarkeit des Serverknotens unterbrochen wird, werden alle damit verbundenen Clients automatisch auf andere vorhandene Knoten verschoben.
Wartungsmodus
Wartungsmodus ist eine weitere benutzergesteuerte Funktion, die von bereitgestellt wird NCache. Wie bereits erwähnt, findet die Zustandsübertragung auf jedem Knoten statt, der den Cluster verlässt oder ihm beitritt. In Szenarien, in denen ein Serverknoten den Cluster verlässt, um unnötige Zustandsübertragungen zu vermeiden, ist der Wartungsmodus praktisch. Es gibt Ihnen die Kontrolle, einen Knoten zur Wartung anzuhalten und Ihrem Cluster die Kosten eines teuren Zustandsübertragungsprozesses zu ersparen. Während ein Knoten gewartet wird, werden alle Vorgänge vom Replikatknoten bedient. Sobald der Knoten dem Cluster wieder beitritt, synchronisiert er den Status mit dem Replikatknoten.
Zusammenfassung
Die Datenverfügbarkeit ist die größte Herausforderung beim Umgang mit Cache-Daten. NCache ist reich an High-End-Funktionen, um die Datenverfügbarkeit um jeden Preis zu bewältigen und eine sofortige Schadensbegrenzung in Katastrophensituationen zu ermöglichen. Nicht nur, dass, NCache verfügt über eine sehr skalierbare Architektur, die nicht nur eine hohe Verfügbarkeit bietet, sondern Ihnen auch ermöglicht, Ihren Cache-Cluster linear zu skalieren. Das kann man also mit Sicherheit sagen NCache ist die beste Caching-Ebene, die Ihre Anwendungsarchitektur benötigt.