In dieser Ära der schnellen und zuverlässigen Anwendungsverarbeitung entscheidet sich jeder für verteiltes Caching, um die beste Leistung aus seiner Anwendung herauszuholen. Wenn Ihre Webanwendungen hohen Datenverkehr anziehen und extrem hohe Transaktionen verursachen, dann brauchen Sie dies auf jeden Fall NCache.
NCache ist eine verteilte In-Memory-Caching-Lösung, die Folgendes bietet: lineare Skalierbarkeit zu .NET- und Java-Anwendungen. Unter anderem Topologien zur Verbesserung der Gesundheitsgerechtigkeit NCache bietet Ihnen, das beliebteste ist Partitioniertes Replikat Topologie. Die Partitioned-Replica-Topologie bietet Ihnen das Beste aus beiden Welten: lineare Skalierbarkeit und hohe Verfügbarkeit.
Im Partitioned-Replica-Cluster werden Daten sowohl partitioniert als auch auf allen Knoten repliziert. Wenn also ein Serverknoten ausfällt, können seine Clients ihre Operationen fortsetzen, indem sie mit seinem Replikat-Gegenstück interagieren. Sobald ein Knoten ausfällt, wird der Zustandsübertragungsprozess ausgelöst, um die verwaisten Daten automatisch neu auszugleichen. Gehen Sie nun davon aus, dass Sie über einen Cluster mit partitionierten Replikaten verfügen und dass einer der Knoten zu Wartungszwecken angehalten werden muss, während Sie wissen, dass Sie diesen Knoten nicht allzu lange danach neu starten werden? Lassen Sie uns sehen, was dieses Verhalten ist und wie es eine Herausforderung für Sie darstellen könnte.
NCache Details Partitioniertes Replikat NCache Docs Wartungsmodus NCache Docs
Herausforderungen bei der automatischen Neuausrichtung während der Wartung
Jedes Mal, wenn ein Knoten in einem Partitioned-Replica-Cluster gestoppt wird; Die Statusübertragung wird ausgelöst, um die Daten im gesamten Cluster neu auszugleichen. Dieser Vorgang kann länger dauern als erwartet, was sich auf die Leistung Ihrer Anwendung auswirkt, insbesondere wenn die Knoten Dutzende Gigabyte an Daten enthalten.
Die folgende Abbildung erläutert das Verhalten des Partitioned-Replica-Clusters, wenn ein Knoten gestoppt wird.
In dieser Abbildung haben Sie eine NCache Partitionierter Replikat-Cluster mit drei Knoten. Hier wurden fünf Stufen eingeführt, um zu erklären, was passiert, wenn ein Knoten in einem Cluster gestoppt wird.
- Stufe 1: NCache's Partitionierte Replik mit drei Knoten A, B und C, von denen jeder einen aktiven und einen Replikatknoten hat.
- Stufe 2: Knoten C wird zur Wartung kurzzeitig angehalten. Sein Aktiv- und Replikatstatus ist nicht mehr Teil des Clusters und die Statusübertragung wird ausgelöst.
- Stufe 3: Daten redisTribution im Cluster (völlig unnötig). Hier werden verwaiste Daten von Knoten C auf die verbleibenden Knoten A und B aufgeteilt, nachdem die Zustandsübertragung gestoppt wurde. Gemäß dieser Aufteilung werden auch ihre Replikatknoten aktualisiert. Diese Statusübertragung ist völlig unnötig, da der gestoppte Knoten bald neu gestartet wird.
- Stufe 4: Knoten C startet neu. Der Cluster verhält sich in diesem Stadium so, als ob Knoten C den Cluster verlassen hätte. Nach Daten redistribution wird Node C erneut gestartet.
- Stufe 5: Knoten C tritt wieder dem Cluster bei und verarbeitet erneut Daten redisTribut. Da seine Daten bereits zwischen A und B verteilt wurden, wird beim erneuten Beitritt von C die Statusübertragung im gesamten Cluster erneut ausgelöst, um den Knoten neue Daten zuzuweisen.
Im Idealfall scheint dies die perfekte Lösung zu sein. Wenn Sie einen Knoten stoppen, erfolgt eine Statusübertragung. Sie reparieren alles, was Sie reparieren wollten, und starten diesen Knoten erneut. Die Statusübertragung wird erneut ausgelöst, um alle Buckets auszugleichen.
Aber warum ist das nicht die ideale Lösung? Was läuft hier schief?
Die unnötige Veranlassung einer Staatsübertragung bringt mehrere Nachteile mit sich. Sie sind:
- Hohe Kosten aufgrund mehrerer Netzwerkaufrufe und Verarbeitungsaufwand.
- Hohe zeitliche Komplexität, wenn die Knoten große Datenmengen enthalten.
- Fehlerhaftes Verhalten beim Neustart eines Knotens während des Zustandstransfers und führt zu einem Zustandstransfer innerhalb des Zustandstransfers.
NCache Details Partitioniertes Replikat NCache Docs Wartungsmodus-NCache Docs
Die Lösung: Wartungsmodusbewusstes, partitioniertes Replikat
Unter Berücksichtigung all dieser Rückschläge unnötiger Zustandsübertragungen, die immer dann auftreten, wenn ein Knoten einen Cluster verlässt und ihm beitritt, NCache versorgt dich mit Wartungsmodus.
Im Wartungsmodus können Sie einen Knoten für einen bestimmten Zeitraum anhalten und ihn wieder starten, wenn die Wartung beendet ist. Dieser Modus stellt sicher, dass der Zustandsübertragungsthread innerhalb des Clusters nicht ausgelöst wird, während ein Knoten gewartet wird. Außerdem ist es äußerst vorteilhaft, wenn der Cluster eine große Datenmenge umfasst.
Wie sich der Wartungsmodus vom normalen Stoppen eines Knotens unterscheidet, wird in der folgenden Abbildung erläutert.
- Stufe 1: Die Struktur der Partitioned-Replica-Topologie of NCache wird gezeigt, wo ein POR-Cluster drei Serverknoten umfasst, die eine große Datenmenge enthalten.
- Stufe 2: Knoten C gestoppt. Knoten C wird zur Wartung im Wartungsmodus angehalten.
- Stufe 3: Daten redisTribut. Hier wird die Replik von C aktiv und beginnt, die Clients von Knoten C anzusprechen. Dadurch entfällt die Notwendigkeit, eine Zustandsübertragung auszulösen, sodass der Zustandsübertragungsthread angehalten wird, solange der Cluster gewartet wird. Dies löst das Problem, das auftritt, wenn unnötige Statusübertragungen die Daten im gesamten Cluster ausgleichen, nachdem Knoten C gestoppt wurde.
- Stufe 4: Knoten C neu gestartet. Nachdem Knoten C zu Wartungszwecken angehalten wurde, wartet er auf den Neustart. Immer wenn der Cluster den Wartungsmodus verlässt, wird Knoten C gestartet.
- Stufe 5: Datenübertragung. Dies ist die Phase des Clusters, in der Knoten C alle Daten von seinem Replikatteil empfängt und den gesamten Knoten (d. h. Aktives C und Replikat B) durch Statusübertragung aktualisiert.
NCache Details Partitioniertes Replikat NCache Docs Wartungsmodus-NCache Docs
So stoppen Sie einen Knoten zur Wartung
Sie können einen Knoten zur Wartung entweder mit Web Manager oder anhalten Powershell. Hier erfahren Sie, wie Sie einen Knoten zur Wartung von Ihrem aus stoppen können Web Manager. Beim Stoppen eines Knotens werden Sie aufgefordert, die Wartungszeit anzugeben, für die Sie diesen Knoten unter Wartung halten möchten. Dieser Timeout wird als Zeitraum betrachtet, für den keine Zustandsübertragung ausgelöst werden kann.
Mit den folgenden Schritten können Sie jeden Knoten stoppen, den Sie zu Wartungszwecken stoppen möchten.
- Zugriff auf Ihre NCache Web Manager
- Gehen Sie zu „Clustered Caches“ und wählen Sie den Cluster aus, der gewartet werden muss
- Wählen Sie unter den verschiedenen Knoten den Knoten aus, der gewartet werden muss.
Gehen Sie zu den Einstellungen und wählen Sie die Option aus Stoppen Sie wegen Wartung.
So verlassen Sie einen Knoten aus dem Wartungsmodus
Sobald ein Cluster in den Wartungsmodus wechselt, wird der Web Manager verwendet, um diesen Cluster zu verlassen. Im Folgenden sind die Schritte aufgeführt, die befolgt werden müssen:
- Von deiner NCache Web Manager, gehen Sie zu Geclusterte Caches
- Wählen Sie den Cluster aus, der gewartet wird.
- Gehen Sie zu den Einstellungen und wählen Sie aus Beenden Sie den Wartungsmodus.
Außer über den Web Manager gibt es mehrere Möglichkeiten, wie ein Knoten den Wartungsmodus verlassen kann. Diese Szenarien müssen berücksichtigt werden, da einige die Leistung Ihrer Anwendung beeinträchtigen können.
Ein Knoten kann den Wartungsmodus in den folgenden Fällen verlassen:
- Wenn der zu wartende Knoten gestartet wird: Wenn der Knoten, der gewartet wird, manuell gestartet wird, entweder über den Manager oder über den PowerShell-Befehl, verlässt dieser Knoten den Wartungsmodus.
- Wenn das Timeout abläuft: Wenn das für die Wartung vorgesehene Zeitlimit abläuft, wird die Statusübertragung ausgelöst und der Cluster verlässt automatisch den Wartungsmodus.
- Wenn ein Knoten den Cluster verlässt: Kein Knoten kann einen Cluster ordnungsgemäß verlassen, solange er gewartet wird. Wenn jedoch einer der Knoten dieses Clusters gewaltsam verlässt, verlässt dieser Cluster unweigerlich den Wartungsmodus, obwohl er sich noch im Wartungsprozess befindet. Hier sollten Sie darauf achten, dass die Wahrscheinlichkeit eines Datenverlusts hoch ist, wenn genau der Knoten, der gerade gewartet wurde, ausfällt.
Unabhängig davon, welche Methode Sie zum Beenden des Wartungsmodus verwenden, ist dieses Signal allein der Hinweis für den Statusübertragungsthread, den automatischen Ausgleichsprozess im gesamten Cluster auszulösen.
Zusammenfassen
Wenn Sie nach einer Möglichkeit suchen, Patches in Ihrem Partitioned-Replica-Cluster-Cache zu integrieren, ohne die Leistung der Anwendung zu beeinträchtigen, dann schauen Sie sich das an NCache Wartungsmodus. Im Wartungsmodus können Sie einen Fehler beheben, einen Patch hinzufügen oder Software oder Hardware aktualisieren, ohne dass es zu Ausfallzeiten der Anwendung kommt. Alles, was Sie tun müssen, ist, die oben genannten Schritte zu befolgen und sich selbst davon zu überzeugen, wie außergewöhnlich es ist NCache Wartungsmodus ist.