Dynamisches Clustering im verteilten In-Memory-Cache
Das NCache Es handelt sich um einen verteilten In-Memory-Cache-Cluster Selbstheilung, dynamisch und hoch skalierbar. Sie können Cache-Server zur Laufzeit hinzufügen oder entfernen, ohne dass die Anwendung herunterfällt. Der NCache Cluster bietet lineare Skalierbarkeit in Bezug auf die Verarbeitung von Anwendungsanfragen und Daten. Wenn Ihr Cache-Cluster seine Spitzengrenzen erreicht, können Sie weitere Server hinzufügen redisTribut an die Anfragen und Datenlasten.
Wenn ein Cache-Server ausfällt, erkennt der Cache-Cluster den Serverausfall automatisch und passt sich entsprechend an. Betrachten wir einen Fall, in dem ein Cache-Server ausfällt Partitionsreplikat Topologie ordnet der Cache-Cluster die Partitionen und Daten automatisch neu an. Die verbleibenden Cache-Server kopieren die verbleibenden Daten des Servers, der ausgefallen ist, von seinem Backup-Server.
Jeder geclusterte Cache verfügt über einen dedizierten TCP-basierten Cluster. Die Anwendungen kommunizieren über TCP mit dem Cache-Cluster. Wenn also der Anwendungsprozess ausfällt, hat dies keine Auswirkungen auf den Cache-Cluster. Jeder Cache-Cluster erfordert zum Zeitpunkt der Konfiguration eines Cluster-Cache einen separaten TCP-Port. Der Partitionsreplikat Topologie belegt einen zusätzlichen TCP-Port für das Replikat.
Das Peer-to-Peer-Architektur Ermöglicht jedem Cache-Server, eine TCP-Verbindung mit jedem anderen Cache-Server herzustellen. Dadurch können Cache-Server bei Bedarf entweder direkt miteinander kommunizieren oder die Anforderungen zu anderen Zeiten senden. Die Multithread-Architektur des Cache-Clusters ermöglicht die Ausführung von Vorgängen Parallelund profitieren so von den Vorteilen der heutigen leistungsstarken Hardware.
Du kannst dich Konfigurieren Sie das Anforderungszeitlimit für den Cache-Cluster zum Zeitpunkt der Konfiguration des Cache-Clusters. Das Standardzeitlimit für Anfragen beträgt 60 Sekunden.
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Note
Die dem Cache-Cluster zugewiesenen Cluster-Ports sollten auf allen konfigurierten Cache-Servern verfügbar sein. Ebenso sollte die Firewall so konfiguriert sein, dass sie die Kommunikation zwischen Cache-Servern an bestimmten Cluster-Ports ermöglicht. Der Standardcluster Portbereich beginnt von 7800.
Cluster-Koordinator in einem verteilten In-Memory-Cache
In einer verteilten Umgebung ist die Koordination verschiedener Aufgaben unumgänglich. Im Cache-Cluster spielt der Koordinatorserver diese wichtige Rolle. Jeder Cache-Cluster verfügt über einen Koordinator-Cache-Server.
Die Auswahl des Koordinatorservers in NCache Ist einfach. Der oberste Cache-Server übernimmt die Rolle des Koordinatorservers. Der Cache-Server, der dem Cluster zuerst beigetreten ist, wird also zum Koordinatorserver. Wenn ein Koordinator-Cache-Server den Cache-Cluster verlässt anmutig oder abrupt wird der nächsthöhere Cache-Server zum Koordinator.
Der Koordinator-Cache-Server ist für Folgendes verantwortlich:
Clustermitgliedschaft: Der Koordinatorserver ist für die Annahme von Mitgliedschaftsanfragen neuer Cache-Server verantwortlich. Außerdem wird die aktualisierte Mitgliederliste an die übrigen Server gesendet. Wenn ein Server den Cluster verlässt, benachrichtigt der Koordinatorserver die anderen Server entsprechend über die Änderung der Mitgliedschaft.
Erstellung von Verbreitungskarten: Der Koordinatorserver generiert die Verteilungskarte und verwaltet die Replikate, wann immer ein Server dem Cache-Cluster beitritt oder ihn verlässt Partitioniert und Partitionsreplikat Topologien.
Bestellung anfordern: Hinzufügen und Aktualisierung von Daten in der Replizierte Topologie erfordert, dass die Vorgänge auf allen Cache-Servern in derselben Reihenfolge ausgeführt werden, um Datenkonsistenz zu erreichen. Diese Operationen beziehen Sequenz-Tokens vom Koordinatorserver und die Ausführung der Operationen erfolgt gemäß diesen Sequenz-Tokens. Dieser Mechanismus garantiert, dass dieselben Aktualisierungen gegen einen bestimmten Wert erfolgen
CacheItem
werden im gesamten Cluster angewendet.Cache Data Loader- und Refresher-Verwaltung: Cache Startup Loader und Refresher Aufgaben werden auf dem Koordinatorserver ausgeführt. Wenn mehrere Hinweise zur Verteilung für den Cache Startup Loader oder Refresher angegeben sind, weist der Koordinator diese Hinweise verschiedenen Clustermitgliedern zum parallelen Laden und Aktualisieren zu.
Datenungültigmachung und -löschung: Jeder Cache-Server in Repliziert und Spiegel Topologien enthalten denselben Datensatz. Daher ist der Koordinatorserver für die Datenungültigmachung verantwortlich (Abläufe und Abhängigkeiten) im gesamten Cluster. Der Koordinatorserver bestimmt, welche Elemente sein sollen abgelaufen or vertrieben aus dem Cache und entfernt diese Elemente durch einen Cluster-Aufruf aus dem gesamten Cluster.
Wie Server dem Cache-Cluster in einem verteilten In-Memory-Cache beitreten und ihn verlassen
Im Folgenden wird der Prozess beschrieben, durch den Serverknoten dem Cache-Cluster beitreten und ihn verlassen:
Mitgliedererkennung und Serverbeitritt
Wenn Sie den Cache auf dem ersten Cache-Server starten, bildet dieser den Cache-Cluster. Beim Cache-Start wird auf jedem Cache-Server ein Mitgliedererkennungsprozess ausgeführt. Im Erkennungsprozess versucht der Cache-Server, eine TCP-Verbindung mit den anderen Cache-Mitgliedern auf dem herzustellen konfigurierter Cluster-Port.
Wenn der erste Cache-Server startet und keine Verbindung mit den anderen Cache-Servern im Cache-Cluster herstellen kann, kommt er zu dem Schluss, dass kein anderer Cache-Server aktiv ist. Dieser Server wird dann das erste Mitglied und der Koordinatorserver des Cache-Clusters. Sobald die anderen Server starten, durchlaufen sie denselben Erkennungsprozess und stellen Verbindungen zu den laufenden Cache-Servern her.
Diese Cache-Server suchen Informationen über den Koordinatorserver des Cache-Clusters von bereits laufenden Cache-Servern. Sobald der Erkennungsprozess abgeschlossen ist und der Koordinatorserver bestimmt ist, senden die neu beitretenden Cache-Server Beitrittsanfragen an den Koordinator.
Der Koordinator nimmt die Beitrittsanfragen entgegen, generiert die Verteilungskarte (nur im Partitioniert und Partitionsreplikat Topologien) und sendet die neue Mitgliederliste an den gesamten Cache-Cluster.
Würdevoller Abgang des Servers
Wenn Sie Stoppen Sie den Cache auf einem Cache-Server über die NCache Management Center or PowerShell-Tools, informiert der verlassende Cache-Server den Koordinator, indem er eine Abwesenheitsanfrage sendet. Der Koordinator verarbeitet den Urlaubsantrag sofort, erstellt Verteilungskarten und sendet die neue Mitgliederliste an den gesamten Cluster. Daher passt sich der Cluster schnell an die neuen Verbreitungskarten an.
Plötzlicher Serverausfall
Es gibt Fälle, in denen ein Cache-Server plötzlich ausfällt, ohne den Koordinator zu informieren, z. B. durch einen Stromausfall. Wenn ein Cache-Server plötzlich ausfällt, werden die TCP-Verbindungen zwischen dem ausscheidenden Server und anderen Cache-Servern unterbrochen. Sie versuchen, die TCP-Verbindung mit dem verlassenden Server für eine konfigurierbare Anzahl von Wiederholungen wiederherzustellen. Dieser Mechanismus hilft bei der Wiederherstellung nach vorübergehenden Verbindungsausfällen und verhindert die falsche Todeserklärung eines Servers.
Sobald die Verbindungswiederholungsversuche beendet sind, schließt der jeweilige Cache-Server den Tod des abrupt verlassenden Servers aus. Bei Feststellung des Todesfalls informieren die Cache-Server den Koordinator. Obwohl der Koordinator möglicherweise bereits den Ausfall eines Cache-Servers entdeckt hat, führen die von anderen Cache-Servern bereitgestellten Informationen zu einer schnellen Anpassung der Mitgliedschaft, falls der Koordinator den Ausfall des Servers feststellt.
In jedem Fall generiert der Koordinator die neuen Verteilungskarten und sendet die neue Mitgliederliste an alle vorhandenen Cache-Server.
Herzschlag
Die Erkennung einer unterbrochenen TCP-Verbindung hängt vom über die Verbindung fließenden Datenverkehr ab. Wenn beispielsweise der Cache-Cluster ausgelastet ist und Anfragen über verschiedene Cache-Server sendet, wird ein Verbindungsabbruch frühzeitig erkannt. Wenn der Cache-Cluster jedoch eine sehr geringe Aktivität aufweist, kann die Erkennung einer TCP-Verbindungsunterbrechung länger dauern.
Um dieses Problem zu vermeiden, die NCache Cluster verfügt über eine integrierte Herzschlagmechanismus das kann aktiviert werden. Wenn sich der Cluster im Ruhezustand befindet, Herzschlag Nachrichten werden regelmäßig zwischen Servern ausgetauscht. Und so kam es dass der Herzschlagmechanismus generiert Datenverkehr zwischen Cache-Servern und hilft bei der frühzeitigen Erkennung von Serverausfällen, die plötzlich verlassen werden.
Nörgeln
NCache Cluster unterstützt die parallele Ausführung mehrerer Anfragen. Der Begriff nörgelnd bezieht sich auf das Zusammenfassen mehrerer Anfragen zu einer einzigen, bevor sie über die TCP-Verbindung gesendet werden. Dadurch erhöht sich der Durchsatz des Clusters. Sie können konfigurieren nörgelnd und seine Schwelle durch die Dienstkonfigurationsdatei.
Benachrichtigungen zur Änderung der Clustermitgliedschaft
Die Änderung der Clustermitgliedschaft ist eine wichtige Aktivität. So, NCache bietet mehrere Mechanismen, um die Cache-Administratoren und Anwendungen über Mitgliedschaftsänderungen zu benachrichtigen.
Cache-Protokolle: Cache-Protokolle sind der erste Ort, an dem Cache-Administratoren nach Mitgliedschaftsänderungen suchen können.
Ereignisanzeige: Beitritts- und Austrittsbenachrichtigungen für Mitglieder sind verfügbar in der Ereignisanzeige angemeldet unter Windows.
E-Mail-Benachrichtigungen: Du kannst dich Konfigurieren Sie E-Mail-Benachrichtigungen Anzahl der Server, die Ereignissen für einen bestimmten Cache beitreten und diese verlassen. Bei jeder Änderung der Mitgliedschaft wird eine E-Mail generiert und an die registrierten E-Mail-Empfänger gesendet.
Benachrichtigungen auf Anwendungsebene: Clientanwendungen können dies auch Registrieren Sie Benachrichtigungen, Rückruf über Änderungen der Clustermitgliedschaft. Diese Rückrufe werden immer dann aufgerufen, wenn sich die Clustermitgliedschaft ändert.
Siehe auch
Cache-Topologien
Lokaler Cache
Cache-Client
Client-Cache
Bridge für die WAN-Replikation