Replica geografica su più data center
NCache fornisce la replica geografica come piano di ripristino di emergenza tramite la funzionalità Bridge. Viene creato un bridge tra più cache del cluster e i dati vengono replicati dall'origine all'altro sito attraverso tale bridge, senza interrompere le operazioni dei client.
Per ulteriori dettagli concettuali e comportamentali del ponte, puoi fare riferimento a Architettura del ponte nella Guida dell'amministratore.
Nel bridge può esserci più di una cache del sito attivo e le operazioni di cache possono essere simultanee. È possibile che il client connesso a una cache del sito attivo aggiunga alcune chiavi e la stessa operazione sulle chiavi venga eseguita dall'altro nodo attivo. In una situazione del genere entra in gioco il risolutore dei conflitti del bridge. Risolve i conflitti e decide quale chiave applicare sulla cache in base alle regole definite.
Se l'utente non ha configurato alcuna regola di risoluzione dei conflitti, allora NCache utilizza la regola di risoluzione predefinita. Nella regola predefinita, viene aggiunto un intervallo di tempo per ogni operazione eseguita sulla cache e mantiene l'ultima operazione. Viene eseguito un controllo sulla versione dell'elemento ponte. Se ha un timestamp più recente o se la versione è l'ultima o la stessa, la sostituisce con la nuova voce e in caso di vecchia mantiene la vecchia voce.
Prerequisiti di replica geografica per data center
Prima di utilizzare la replica geografica con NCache garantire che siano soddisfatti i seguenti prerequisiti:
- Per conoscere i prerequisiti standard richiesti per lavorare con all NCache caratteristiche lato server si prega di fare riferimento alla pagina indicata su Prerequisiti API lato server.
- Per i dettagli dell'API, fare riferimento a: ICache, CacheItem, IBridgeConflittiResolver, BridgeItemVersion.
- Questo dovrebbe essere un progetto di libreria di classi che usa Microsoft Visual Studio.
- Assicurati che configurare Bridge usando il NCache Management Center dopo aver implementato questa classe.
Esempio di implementazione dell'interfaccia IBridgeConflictResolver
La seguente implementazione di esempio del risolutore di conflitti contiene la logica per risolvere qualsiasi conflitto che potrebbe verificarsi durante la replica di un'operazione dal bridge per una chiave già esistente nella cache. Ogni volta che si verifica un conflitto, la cache chiama BridgeConflictResolution
decidere quale operazione applicare sulla cache in base alle regole in essa definite. Sono necessari due parametri/voci, entrambi di tipo ProviderBridgeItem
tipo. ProviderBridgeItem
contiene i seguenti parametri:
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
}
}
Vedere anche
Dipendenze cache personalizzate
Processore di ingresso
Configurazione del bridge per la replica WAN