L'applicazione può essere distribuita in più data center per il ripristino di emergenza o per il bilanciamento del carico geografico del traffico. Se l'applicazione è ad alto traffico, deve utilizzare una cache distribuita. In queste situazioni, è necessario assicurarsi che la cache distribuita possa eseguire la replica WAN per un'elevata disponibilità dei dati in caso di emergenza.
NCache fornisce Bridge per gestire la replica WAN delle cache distribuite. Forma un ponte tra i data center distribuiti ed esegue la replica asincrona dei dati in modo che non vi sia alcun degrado delle prestazioni. Inoltre, il bridge stesso è un cluster di due server per scopi di disponibilità elevata.
Potresti avere un datacenter attivo e uno passivo principalmente per scopi di ripristino di emergenza. In questa configurazione, un sito attivo contiene il bridge e le cache, mentre il passivo contiene solo le cache. Il sito attivo replica i dati in modo asincrono attraverso il bridge al sito passivo, che funge da backup in caso di emergenza.
Potresti avere due data center attivi per una combinazione di bilanciamento del carico regionale e uno scopo implicito di ripristino di emergenza. Uno dei siti attivi contiene il bridge e le cache mentre uno contiene solo le cache, in modo simile alla configurazione attivo-passivo. Tuttavia, la differenza in questo caso è che entrambi i siti replicano i dati l'uno con l'altro poiché entrambi servono attivamente le operazioni client.
A parte le suddette configurazioni, NCache fornisce anche la gestione di tre o più data center. In questo caso, uno dei siti è un sito bridge, che contiene il bridge e le cache. Gli altri siti contengono solo le cache. Tutti i siti non bridge sono connessi al sito bridge, quindi i dati vengono replicati in tutti i siti contemporaneamente. È inoltre possibile creare un bridge di backup su uno qualsiasi di questi siti per garantire un'elevata disponibilità in caso di inattività del sito bridge. Per maggiori dettagli su questa configurazione, puoi andare al blog Informazioni sulla replica WAN multi-datacenter.
Quando hai più siti attivi, è possibile che gli stessi dati possano essere aggiornati contemporaneamente su ciascuno di quei siti. Per impostazione predefinita, il conflitto viene risolto in NCache utilizzando la logica "l'ultimo aggiornamento vince". Tuttavia, puoi anche specificare un gestore di risoluzione dei conflitti personalizzato che risolva il conflitto analizzando i dati in base alla tua logica.
Il seguente frammento di codice mostra un'implementazione semplificata del risolutore di conflitti implementato nella cache:
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 custom logic */ }
break;
}
return conflictResolution;
// Configure this implementation on cache
}
public void Dispose() {. . .}
}
Per maggiori dettagli sulla risoluzione dei conflitti, puoi fare riferimento a Documenti di risoluzione dei conflitti.
La replica tra data center distribuiti a livello regionale può comportare un degrado delle prestazioni a causa della latenza. Quindi, NCache bridge esegue la replica WAN asincrona in parallelo su tutti i data center in modo che l'applicazione non subisca alcun tempo di inattività durante l'attesa della replica delle operazioni.
Inoltre, il bridge invia anche più elementi di dati come un'unica richiesta di massa all'altro sito, riducendo drasticamente i viaggi di rete attraverso la WAN. Come componente aggiuntivo, il bridge ha anche la replica incorporata: è un cluster a 2 nodi che si replica automaticamente, quindi è altamente disponibile. Per maggiori dettagli su NCache comportamento del bridge, a cui puoi fare riferimento NCache Documenti sull'architettura del ponte.
NCache gestisce senza problemi le situazioni di emergenza in ciascuna delle suddette configurazioni di data center.