Heutige Anwendungen sind stark transaktionsorientiert und können für hohe Transaktionen skaliert werden, indem sie in einer lastausgeglichenen Multi-Server-Bereitstellung ausgeführt werden. Gleichzeitig müssen viele dieser Anwendungen in mehreren Rechenzentren ausgeführt werden. Dies könnte für die Notfallwiederherstellung erfolgen, bei der ein aktives Rechenzentrum eine Notfallwiederherstellung als passives Rechenzentrum hat, das sich normalerweise an einem anderen geografischen Standort befindet. Ein weiterer Grund ist, dass Benutzer dieser Anwendung, wenn sie geografisch verteilt sind, schnellere Reaktionszeiten erhalten, da sie gleichzeitig auf ihr eigenes Rechenzentrum in ihrer Region zugreifen.
NCache Details Bridge für die WAN-Replikation NCache Docs
Der Cache benötigt genau wie die Datenbank eine WAN-Replikation
Wenn Sie Anwendungen in mehreren Rechenzentren ausführen, muss der Cache repliziert werden. Dies liegt daran, dass der Cache vorübergehende Daten speichert, und wenn der Cache jemals ausfällt, gehen die Daten verloren. Vorübergehende Daten können ASP.NET-Sitzungen, beliebige Daten, die von Ihrer Anwendung generiert werden, oder aggregierte Daten sein. Temporäre Daten sind jedoch nicht dauerhaft, sie werden also niemals in der Datenbank gespeichert, sondern nur zwischengespeichert.
Die anderen Daten NCache behält aus Performancegründen die Anwendungsdaten. Wenn Sie diese Daten verlieren, werden sie aus der Datenbank neu geladen, was die Leistung beeinträchtigt. Viele Unternehmen möchten sich aufgrund des hohen Anwendungsverkehrs nicht damit befassen. Aus diesem Grund müssen sogar die Anwendungsdaten über das WAN repliziert werden, wenn Sie eine Bereitstellung mit mehreren Rechenzentren haben.
NCache Details WAN-Replikation NCache Docs
Lösung: NCache WAN-Replikation über Bridge
Um mit der oben genannten Situation fertig zu werden, NCache bietet eine WAN-Replikationsfunktion über eine Brücke. Dadurch können Sie bereitstellen NCache über mehrere Rechenzentren hinweg in Aktiv-Passiv-, Aktiv-Aktiv-, 3+ Rechenzentrums-Aktiv-Aktiv-Konfigurationen.
2-Site Aktiv-Passiv
In einer Aktiv-Passiv-Konfiguration NCache wird sowohl auf aktiven als auch auf passiven Sites bereitgestellt, wodurch eine Bridge-Topologie auf der aktiven Site erstellt wird. Abbildung 1 zeigt, wie dies in einer Aktiv-Passiv-Konfiguration ausgelegt ist. Alle Anwendungsaktualisierungen werden vom Cache der aktiven Site an die Bridge gesendet, die sie innerhalb von Millisekunden asynchron an die passive Site sendet. Die einzige Verzögerung hier ist die Latenz zwischen Rechenzentren, wenn sie weit voneinander entfernt sind. Eine Bridge-Topologie mit einem asynchronen Warteschlangenmechanismus ermöglicht also, dass all diese Aktualisierungen erfolgen, ohne dass etwas überläuft.
NCache Details Cache-Synchronisierungsmodi NCache Docs
2-Site Aktiv-Aktiv
Eine andere Konfiguration, die NCache unterstützt ist aktiv-aktiv, wobei beide Seiten aktiv sind. Einer enthält die Cache- und Bridge-Topologie, der andere nur den Cache. Abbildung 2 zeigt, wie das gemacht wird. Ähnlich wie bei Aktiv-Passiv sendet ein Cache bei Aktiv-Aktiv seine Aktualisierungen an die Bridge, die sie wiederum an andere Caches sendet. Allerdings gibt es jetzt einen Unterschied. Konflikte können auftreten, wenn dasselbe Element auf beiden Seiten gleichzeitig aktualisiert wird. Das bedeutet, dass die Bridge Aktualisierungen von beiden Sites koordinieren und Konflikte asynchron lösen muss, um zu vermeiden, dass die Cache-Leistung an jeder aktiven Site beeinträchtigt wird.
NCache Details WAN-Replikation für mehrere Rechenzentren NCache Docs
3+ Site Aktiv-Aktiv
In der dritten Situation gibt es 3 oder mehr aktive Rechenzentren. Hier hat eine der aktiven Sites Cache und Bridge, alle anderen Sites haben nur Cache. Das heißt, die Bridge ist für einen der Standorte lokal, aber die anderen beiden Standorte greifen remote auf die Bridge zu. Ähnlich wie beim Aktiv-Aktiv-Szenario senden in diesem 3+ Aktiv-Aktiv-Szenario alle Caches Aktualisierungen an die Bridge, und die Bridge leitet Aktualisierungen an alle verbundenen Caches weiter. Gleichzeitig führt es eine Konfliktlösung durch, um sicherzustellen, dass dieselben Daten, die aus dem Cache aktualisiert werden, keine Datenintegritätsverletzungen verursachen.
NCache Details Brückentopologie NCache Docs
Abbildung 3 zeigt drei Aktiv-Aktiv-Rechenzentren. NCache ermöglicht eine sehr nahtlose und asynchrone Cache-Replikation. Keine Änderungen des Anwendungscodes. Anwendungen wissen nicht einmal, dass der Cache repliziert wird, aber er wird asynchron über das WAN des Rechenzentrums repliziert.
Parallele und asynchrone Massen-WAN-Replikation
Alle Aktualisierungen des Cache sind asynchron. Der Grund für ihre Asynchronität ist die Entfernung zwischen mehreren Rechenzentren. Dieser Abstand kann aufgrund von Latenz zu schlechter Leistung führen. Die Zugriffszeiten zwischen Servern sind sehr schnell, wenn Anwendungen im selben Rechenzentrum zwischengespeichert werden. Aber über ein WAN ist es normalerweise sehr langsam. Wenn Sie also keine asynchronen Aktualisierungen durchführen, muss derjenige, der die Aktualisierungsanfrage stellt, warten, bis die Aktualisierung abgeschlossen ist – synchrone Aktualisierungen, die Ihre Anwendung verlangsamen.
Asynchrone Replikation bedeutet jedoch, dass Anwendungen und Caches an jedem Standort nicht darauf warten, dass ihre Daten in andere Rechenzentren repliziert werden. Daten werden in die Warteschlange gestellt Brücke. Die Brücke selbst ist ein Zwei-Knoten-Cluster, der alle Aktualisierungsanforderungen von allen Caches in eine Warteschlange stellt. Für Aktiv-Passiv sind Anfragen In Warteschlange nur aus dem aktiven Cache und asynchron auf den passiven Cache angewendet. Wenn Sie über drei oder mehr Rechenzentren verfügen, wendet die Bridge Aktualisierungen parallel auf mehrere aktive Standorte an.
Darüber hinaus führt die Brücke Massenaktualisierungen durch. Das bedeutet, dass Sie mehrere Datenelemente in einer einzigen Anfrage kombinieren und sie als eine einzige Massenanfrage an andere Standorte senden können, wodurch Netzwerkreisen erheblich reduziert werden. Diese leistungsstarke Kombination aus paralleler, Massen- und asynchroner Replikation verbessert daher die Leistung, während Caches über mehrere Rechenzentren hinweg repliziert werden.
NCache Details WAN-Replikationstopologie NCache Docs
Konfliktlösung
Wenn Sie mehrere aktive Sites haben, kann jede dieser Sites dieselben Daten gleichzeitig aktualisieren. Stellen Sie sicher, dass Ihr lokaler Computer mit der lokalen Zeitzone synchronisiert ist. Natürlich ist es kein Problem, wenn es nicht gleichzeitig aktualisiert wird. Angenommen, Sie aktualisieren Element 1 zum Zeitpunkt T1 und Element 2 zum Zeitpunkt T2. Die Aktualisierung zum Zeitpunkt T2 ist die zuletzt angewendete Aktualisierung. Wenn jedoch beide Aktualisierungen gleichzeitig erfolgen, wird die Brücke muss den Konflikt auf eine von zwei Arten lösen.
-
Standardlogik „Last Update Wins“: Die Bridge ruft automatisch den Zeitstempel von jedem Cache ab, und alle Caches haben ihre Uhren synchronisiert, sodass sie die gleiche Zeit haben. Die Brücke empfängt Aktualisierungszeiten von jedem Cache, und die neuesten Aktualisierungen werden auf alle Caches angewendet. Auch hier besteht der Zweck der Konfliktlösung darin, dieselbe Versionsaktualisierung auf alle Caches anzuwenden, um Datenintegritätsprobleme zu vermeiden.
-
Konfliktlösungs-Handler: Eine andere Möglichkeit, wie die Brücke Konflikte löst, besteht darin, dass sie einen Konfliktlösungs-Handler gemäß ihrer Logik zum Analysieren von Aktualisierungen bereitstellen kann. Da dieser Resolver mit konfiguriert ist NCache, stellt die Bridge beide Kopien des Objekts bereit und der Resolver analysiert, welche Version gemäß der bereitgestellten Logik besser ist. Dadurch wird die endgültige Version an die Brücke zurückgegeben und dieses Update auf alle Caches angewendet.
Der folgende Codeausschnitt gibt Ihnen ein Beispiel der Konfliktlöser-Implementierung, die im Cache bereitgestellt wird:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Resolver : IBridgeConflictResolver { public void Init(System.Collections.IDictionary parameters) {. . .} public ConflictResolution Resolve(ProviderBridgeItem oldEntry, ProviderBridgeItem newEntry) { var conflictResolution = new ConflictResolution(); switch (oldEntry.BridgeItemVersion) { case BridgeItemVersion.OLD: { /* Replace item with new entry */ } break; case BridgeItemVersion.LATEST: { /* Keep old entry */ } break; case BridgeItemVersion.SAME: { /* Your logic to replace entry if needed */ } break; } return conflictResolution; // Configure this implementation on cache } public void Dispose() {. . .} } |
Daher durch die Einführung eines Konfliktlösungsmechanismus NCache, können Sie sicher sein, dass Ihr Cache nie asynchron ist. Es wird nie zwei verschiedene Versionen der Datenaktualisierungen geben und es wird immer über mehrere Rechenzentren hinweg konsistent sein.
NCache Details Brücke konfigurieren Konfigurieren Sie den Konfliktlöser
Umgang mit Katastrophen zur Laufzeit
Lassen Sie uns nun darüber sprechen, was im Katastrophenfall passiert, wenn ein Standort ausfällt.
Aktiv passiv
Fall 1: Die passive Site fällt aus
Eine Aktiv-Passiv-Konfiguration fungiert als Notfallwiederherstellungsstandort. Wenn also die passive Seite ausfällt, funktioniert die aktive Seite immer noch und Ihre Anwendung wird weiter ausgeführt. Die Bridge kann keine Daten auf den passiven Standort replizieren, bis Sie eingreifen, um den passiven Standort wiederherzustellen. Wenn Sie die passive Site wiederherstellen, verbindet sie sich erneut mit der Bridge und wird neu synchronisiert, wodurch der vorhandene Cache verworfen und effektiv eine vollständige Kopie des Caches der aktiven Site über die Bridge abgerufen wird. Nach Abschluss der Synchronisierung wechselt es in den normalen WAN-Replikationsmodus.
NCache Details Bridge-Caches synchronisieren Aktiv-Passiv-Cache
Fall 2: Die aktive Seite fällt aus
Wenn die aktive Site ausfällt, bedeutet dies, dass Sie eine Art Katastrophe haben, weil die Brücke ausgefallen ist und die Anwendung wahrscheinlich ausgefallen ist. Sie müssen jetzt den gesamten Datenverkehr an die senden passive Seite das wird jetzt aktiv. Alle Daten werden von der ursprünglichen aktiven Site auf die ursprüngliche passive Site repliziert, ohne dass die Benutzer gestört werden. Die ursprüngliche passive Site ist jetzt aktiv, sodass alle Aktualisierungen hier stattfinden, aber die Benutzer sehen keine Unterbrechungen.
Sobald die ursprüngliche aktive Seite jedoch wieder aktiv ist, verbindet sie sich mit der neuen aktiven Seite (der ursprünglichen passiven Seite) und synchronisiert selbst vollständig. Sobald die Synchronisierung abgeschlossen ist, sind beide aktiv-aktiv, obwohl der gesamte Datenverkehr an die ursprüngliche passive Site geht. Sie haben die Flexibilität, den gesamten Datenverkehr auf die ursprüngliche aktive Site zu verlagern und den Status der Aktiv-Aktiv-Site auf der Bridge wieder auf passiv zu ändern. NCache ermöglicht Ihnen all dies zur Laufzeit ohne Unterbrechung im Falle eines Aktiv-Passiv-Ausfalls.
Aktiv-Aktiv
Wenn die aktive Site mit der Brücke ausfällt, wird die WAN-Replikation angehalten, weil die Brücke ausgefallen ist. Andere aktive Sites funktionieren jedoch weiterhin, und der gesamte Datenverkehr wird an sie weitergeleitet. Sobald Sie die heruntergefahrene Site hochgefahren haben, können Sie die Bridge starten und die aktive Site mit der Bridge verbinden, sodass beide Sites synchron sind. Dies geschieht alles zur Laufzeit, sodass keine Ausfallzeit erforderlich ist. Sobald die Bridges synchronisiert sind, können beide Sites Updates per Push übertragen. NCache bietet somit Fehlertoleranz.
NCache Details Cache-Synchronisierungsmodi NCache Docs
3+ aktive Websites
Die dritte Situation ist, wenn Sie 3 oder mehr aktive Sites haben, wobei eine Site die Brücke hat und die anderen nicht. Dabei können wie erwähnt zwei Szenarien stattfinden.
Fall 1: Das aktive Nicht-Brücken-Site fällt aus
In diesem Fall replizieren sich andere Sites weiterhin gegenseitig, und der Datenverkehr dieser Site wird an die anderen verbundenen Sites umgeleitet, ohne die Benutzer zu stören. Sobald die Site hochgefahren ist, verbindet sie sich wieder mit der Bridge und wird neu synchronisiert, um die neueste Kopie des Caches zu erhalten. Dies ist das Signal, um den Verkehr wieder in Gang zu bringen.
NCache Details Ändern Sie die Cache-Synchronisierungsmodi Brückentopologie
Fall 2: Das aktive Zentrum mit der Brücke fällt aus
In dem Fall, in dem die Brücke ausfällt, arbeiten die anderen beiden aktiven Sites weiter, aber sie können ihre Aktualisierungen nicht gegenseitig replizieren, da keine Brücke vorhanden ist. Was Sie also zu diesem Zeitpunkt tun können, ist, eine Brücke in einer der beiden anderen aktiven Sites zu starten.
Um die Bridge zu starten, benötigen Sie zwei Knoten als a Gruppe. Idealerweise sollten Sie über einen dedizierten Satz von Servern für die verfügen Brückentopologie auf dieser Seite, aber Sie können auch zwei Cache-Server als Cluster verwenden, da es höchstwahrscheinlich temporär ist. Es kann sich jedoch auf die Leistung dieser Cache-Server auswirken, da die Bridge jetzt auch Ressourcen wie CPU und Speicher verbraucht.
Du brauchst Brücke starten auf einer der aktiven Sites, wo beide aktiven Sites bereits ausgeführt werden. Der laufende Cache kann sich jetzt mit einer Bridge verbinden. Sie verbinden sich also beide mit einer Bridge und synchronisieren sich, indem sie alle Updates miteinander replizieren. Die Benutzer erleben keine Unterbrechung, da die beiden Sites synchronisiert sind und Updates miteinander verbreiten. Wenn also eine Website ausfällt, verlieren Sie keine Daten.
NCache Details Geclusterte Caches hinzufügen Brückenmanagement
Sobald die ursprüngliche Seite mit der Brücke wieder angezeigt wird, können Sie einfach:
- Nehmen Sie die Brücke an der temporären Stelle herunter.
- Entfernen Sie die Brücke aus dem bestehenden Cache.
- Bringen Sie die Brücke an der ursprünglichen Stelle hoch.
- Verbinden Sie alle Caches mit dieser neuen Brücke.
Da Sie den Cache zur Laufzeit mit der Bridge verbinden können, NCache ermöglicht es Ihnen, all diese Arbeiten durch Skripterstellung zu automatisieren, sodass Sie problemlos mit der Situation umgehen können, in der eine Bridge-Site ausfällt und Sie sie wieder hochfahren müssen.
Zusammenfassung
NCache bietet Ihnen einen leistungsstarken WAN-Replikationsmechanismus, mit dem Sie viele verschiedene erweiterte Szenarien handhaben können. Darüber hinaus führt es eine schnelle und effiziente WAN-Replikation durch und verarbeitet Aktiv-Passiv-, Aktiv-Aktiv- oder drei oder mehr Aktiv-Aktiv-Rechenzentren.