Georeplikation über mehrere Rechenzentren hinweg
NCache bietet Ihnen Georeplikation als Disaster-Recovery-Plan über die Bridge-Funktion. Zwischen mehreren Cluster-Caches wird eine Brücke erstellt und Daten werden über diese Brücke von der Quelle zum anderen Standort repliziert, ohne den Betrieb der Clients zu stören.
Weitere konzeptionelle und verhaltensbezogene Details der Brücke finden Sie unter Brückenarchitektur im Administratorhandbuch.
In Bridge kann es mehr als einen aktiven Site-Cache geben und Cache-Vorgänge können gleichzeitig erfolgen. Es ist möglich, dass der mit einem aktiven Site-Cache verbundene Client einige Schlüssel hinzufügt und die gleiche Schlüsseloperation vom anderen aktiven Knoten ausgeführt wird. In einer solchen Situation kommt der Brückenkonfliktlöser ins Spiel. Es löst die Konflikte und entscheidet, welcher Schlüssel auf den Cache angewendet werden soll, abhängig von den definierten Regeln.
Wenn der Benutzer keine Regeln zur Konfliktlösung konfiguriert hat, dann NCache verwendet die Standard-Resolver-Regel. In der Standardregel wird mit jedem im Cache ausgeführten Vorgang eine Zeitspanne hinzugefügt und der letzte Vorgang beibehalten. Es wird eine Überprüfung der Version des Brückenelements durchgeführt. Wenn es einen neueren Zeitstempel hat oder wenn die Version die neueste oder dieselbe ist, wird diese durch den neuen Eintrag ersetzt und im Falle einer alten wird der alte Eintrag beibehalten.
Georeplikationsvoraussetzungen für Rechenzentren
Vor der Verwendung der Georeplikation mit NCache Stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache serverseitige Features entnehmen Sie bitte der angegebenen Seite Serverseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: ICache, CacheItem, IBridgeConflictResolver, BridgeItemVersion.
- Dies sollte ein Klassenbibliotheksprojekt sein, das Microsoft Visual Studio verwendet.
- Stelle sicher, dass Bridge konfigurieren Verwendung der NCache Management Center nach der Implementierung dieser Klasse.
Beispielimplementierung der IBridgeConflictResolver-Schnittstelle
Die folgende Beispielimplementierung des Konfliktlösers enthält Logik zum Lösen von Konflikten, die beim Replizieren eines Vorgangs von der Bridge für einen Schlüssel auftreten können, der bereits im Cache vorhanden ist. Immer wenn ein Konflikt auftritt, ruft der Cache auf BridgeConflictResolution
um zu entscheiden, welche Operation auf den Cache angewendet werden soll, abhängig von den darin definierten Regeln. Es werden zwei Parameter/Einträge benötigt, beide sind vom ProviderBridgeItem
Art. ProviderBridgeItem
enthält die folgenden Parameter:
public class Resolver : IBridgeConflictResolver
{
public void Init(System.Collections.IDictionary parameters)
{
// Initialize parameters
}
public ConflictResolution Resolve(ProviderBridgeItem oldEntry, ProviderBridgeItem newEntry)
{
var conflictResolution = new ConflictResolution();
switch (oldEntry.BridgeItemVersion)
{
case BridgeItemVersion.OLD:
{
conflictResolution.ResolutionAction = ResolutionAction.ReplaceWithNewEntry;
}
break;
case BridgeItemVersion.LATEST:
{
conflictResolution.ResolutionAction = ResolutionAction.KeepOldEntry;
}
break;
case BridgeItemVersion.SAME:
{
if (oldEntry.OpCode == BridgeItemOpCodes.Remove)
{
conflictResolution.ResolutionAction = ResolutionAction.ReplaceWithNewEntry;
}
else
{
conflictResolution.ResolutionAction = ResolutionAction.KeepOldEntry;
}
}
break;
}
return conflictResolution;
// Configure this implementation on cache
}
public void Dispose()
{
// Dispose resources
}
}
Siehe auch
Benutzerdefinierte Cache-Abhängigkeiten
Eingabeprozessor
Konfigurieren von Bridge für die WAN-Replikation