Bridge per la replica geografica
Per le applicazioni su larga scala, le cache distribuite vengono utilizzate per migliorare le prestazioni, l'affidabilità e la scalabilità di runtime delle applicazioni. Pertanto, le cache distribuite possono rappresentare una parte molto importante del piano di ripristino di emergenza, un disastro che va dai disastri naturali ai disastri hardware interni o ai guasti del software.
Il piano di ripristino di emergenza migliore e più utilizzato è la replica dei dati in tempo reale su altri siti di backup. Pertanto, quando necessario, puoi reindirizzare i tuoi utenti live al tuo sito di backup senza errori. Tuttavia, ciò richiede la garanzia che la cache attiva e quella di backup siano entrambe sincronizzate in qualsiasi momento. Se non sono sincronizzati, ciò può influire sui client cache delle tue applicazioni.
NCache fornisce la replica WAN tramite la funzionalità bridge. Viene creato un bridge tra più cache del cluster e i dati vengono replicati dall'origine all'altro sito tramite quel bridge.
Se non solo disponi di piani di ripristino di emergenza ma desideri anche distribuire la tua applicazione in regioni geograficamente separate per clienti ampiamente distribuiti, anche la replica dei dati risolve il problema. Qui puoi avere due o più siti attivi, che gestiranno gli utenti di regioni correlate e potranno anche essere utilizzati come backup di siti di altre regioni.
La replica remota dei dati è un componente fondamentale per qualsiasi piano volto a garantire una protezione efficace ed efficiente dei dati e un ripristino rapido dopo un'interruzione grave. La replica sincrona dei dati è positiva per il cluster internamente, ma il suo impatto sulle prestazioni diventa una considerazione significativa quando i cluster di cache sono geograficamente separati. Il bridge è progettato per scenari che implicano la replica dei dati dalle cache in loco ad altre cache in loco/fuori sede attraverso la WAN per il ripristino di emergenza. A causa della replica asincrona, tutti i client connessi alle cache attive hanno l'impressione che le operazioni vengano eseguite sulla cache attiva mentre un backup completo viene eseguito senza problemi sulle altre cache.
Quando un'operazione viene eseguita sulla cache di origine, viene trasferita in modo asincrono al bridge. Questa operazione viene quindi accodata in una coda gestita dal bridge. Le operazioni dalla coda vengono trasferite alla cache di destinazione quando il bridge trova la cache di destinazione disponibile e pronta ad accettare operazioni. Con il ponte si garantisce che:
- Non vi è alcun degrado delle prestazioni.
- Le operazioni vengono eseguite nella stessa sequenza in cui erano nella cache originale.
- Le operazioni non vengono perse in caso di errore di connessione.
Architettura di memorizzazione nella cache collegabile: Le cache non sono a conoscenza l'una dell'altra; conoscono semplicemente il bridge e replicano i loro dati sul bridge. A causa di questo accoppiamento lasco, è possibile configurare un bridge tra più cache, indipendentemente dalla topologia della cache. Puoi rimuovere liberamente le cache configurate con un bridge.
Integrità dei dati: Le operazioni eseguite nella cache di origine vengono accodate dal bridge mantenendo l'ordine effettivo in cui sono state eseguite nella cache di origine. Il bridge esegue le operazioni sulla cache di destinazione nello stesso ordine. I conflitti vengono risolti nella cache di destinazione. In questo modo, le cache alla fine diventano coerenti.
Servizio Bridge dedicato: Il bridge è anche un servizio autonomo e dedicato come il servizio cache, pertanto le operazioni della cache non verranno influenzate se le operazioni del bridge vengono ritardate a causa della latenza nella rete.
Configurazione del ponte: Puoi configurare il tuo bridge sullo stesso server in cui risiede la cache del cluster oppure puoi crearlo sul nodo del server separato. Quindi, puoi aggiungere una qualsiasi delle cache del cluster nel bridge e i dati verranno replicati tra di loro.
Ripristino di emergenza: È possibile configurare un bridge tra un data center attivo e passivo per il ripristino di emergenza.
Trattare geograficamente il cliente: Puoi avere due o più siti attivi che gestiscono gli utenti di regioni correlate e possono anche essere utilizzati come backup di siti di altre regioni.
Replica asincrona: Per la replica WAN, viene utilizzata la replica asincrona in modo che le operazioni della cache non subiscano danni in caso di ritardi nelle operazioni bridge.
Backup della coda: Il bridge è una coda cluster multi-nodo in cui un nodo è attivo e l'altro è passivo, con un backup della coda attiva per evitare la perdita di dati sul bridge.
Tentativi di connessione: Il bridge tenta inoltre di replicare tutte le operazioni riprovando quando si verifica un errore di connessione.
Coda replica bridge: La dimensione della coda del replicatore bridge è inclusa nella dimensione della cache. Se la cache non è in grado di connettersi al bridge, le operazioni verranno accodate nella cache finché la cache non sarà piena. Se la cache è piena, verrà eseguita l'eliminazione degli elementi della cache per fare spazio per aumentare la coda del bridge.
cache: Puoi utilizzare qualsiasi topologia per le cache del cluster che faranno parte del bridge. Puoi anche utilizzare diverse cache della topologia su ciascun sito in un bridge. Tuttavia, si consiglia vivamente di utilizzare la stessa topologia su entrambi i lati.
Modalità di sincronizzazione della cache per la replica geografica
I NCache bridge può avere più cache collegate ed è possibile fornire una delle seguenti modalità di sincronizzazione alla cache per il ripristino di emergenza:
Cache attiva:
Una cache attiva può essere di qualsiasi topologia, in cui tutti i client si connettono ed eseguono operazioni di lettura e scrittura che vengono replicate tramite bridge alle altre cache collegate.cache passiva:
Una cache passiva può avere qualsiasi topologia, ma è consigliabile che sia uguale a una cache attiva. Tuttavia, tutte le operazioni eseguite sulla cache attiva vengono replicate nella cache passiva. I client possono connettersi alla cache passiva ed eseguire operazioni di lettura e scrittura, ma tali operazioni non vengono replicate nella cache attiva. Se necessario, è possibile apportare modifiche alla cache passiva.Se il sito attivo non funziona per qualsiasi causa, puoi reindirizzare le tue richieste al tuo sito passivo rendendolo attivo. Il tuo sito passivo si comporterà come attivo e tratterà tutte le richieste senza errori.
Quando il tuo vecchio sito attivo sarà pronto e riavviato, potrai riformare la configurazione com'era prima. Rendi attivi entrambi i siti e questo trasferirà tutti i dati dal vecchio sito passivo al vecchio sito attivo. Una volta trasferiti tutti i dati, puoi effettuare configurazioni sul tuo sito passivo e reindirizzare tutte le richieste al sito attivo.
Nel caso di comunicazione tra due cache attive, gli stessi dati memorizzati nella cache possono essere aggiornati su entrambe le cache quasi contemporaneamente, il che produce un conflitto. Per risolvere questo conflitto, NCache fornisce un configurabile Risolutore di conflitti che risolve il conflitto operativo sul tempo del bridge. Per impostazione predefinita, l'ultima operazione "vince" e viene applicata alla cache in caso di conflitto.
Se un sito non funziona, puoi reindirizzare tutte le richieste ad altri siti attivi. Quando il sito disattivato è nuovamente attivo, i dati vengono trasferiti dal sito già in esecuzione a questo sito e possono reindirizzare la richiesta di quella regione a questo sito.
Note:
Si consiglia che le cache abbiano le stesse configurazioni diverse dalla topologia per evitare problemi. Ad esempio, se l'origine dati è configurata su una cache, dovresti configurarla anche sull'altra cache. Questo perché le stesse specifiche operative della cache di un sito verranno replicate nell'altro sito.
Trasferimento di Stato
È possibile attivare manualmente un trasferimento di stato tra due cache se si desidera sincronizzare lo stato della cache di origine con la cache di destinazione. Ciò avviene attraverso un ponte.
Le operazioni di trasferimento dello stato sono accodate alla fine della cache e non appena si collega al bridge, inizia a inviare le sue operazioni al bridge che vengono inoltrate alla cache di destinazione. Una volta avviato il trasferimento di stato tra le cache, non è possibile avviare un altro trasferimento di stato, per garantire la stabilità del sistema.
Caso 1: si verifica il trasferimento della cache nello stato:
Se la cache A e la cache B hanno un trasferimento di stato in corso, la cache A diminuisce e non tornerà più. Poiché il ponte è in fase di trasferimento di stato, qualsiasi altra richiesta di trasferimento di stato in entrata può essere respinta per questo motivo. Per far fronte a ciò, il bridge determina in modo intelligente se ha smesso di ricevere le operazioni dalla cache A dopo un intervallo specificato. Pertanto, quel trasferimento di stato è considerato danneggiato e il bridge consente la richiesta di trasferimento di nuovo stato.
Caso 2: Cache e Bridge hanno problemi di rete ma non si disconnettono:
Nel caso in cui la connessione cache e bridge subisca un problema tecnico di rete, tale da renderla parzialmente connessa, le code di trasferimento operazioni e stato sono ancora intatte. Pertanto, il trasferimento statale può essere ripreso poiché nessuna operazione è andata perduta.
Code a ponte
La cache A è la cache attiva mentre la cache B è passiva. La cache A invia operazioni alla cache B tramite bridge ma la cache B non funziona per un po' di tempo. Ciò significa che la coda del bridge si sta riempiendo con le operazioni inviate dalla cache A, ma non viene rimossa dalla coda poiché la cache B è inattiva. Arriverà un punto in cui la coda del bridge si riempirà completamente e non avrà più spazio per memorizzare altre operazioni. Quindi, dice alla Cache A di trattenere le operazioni alla fine finché non avrà spazio. Le operazioni vengono quindi accodate solo alla fine della cache. Supponiamo che la cache B venga ripristinata e che la coda del replicatore del bridge inizi a inviarle le operazioni, quindi viene rimossa dalla coda. Una volta liberata una quantità configurabile di spazio (20 MB per impostazione predefinita), il bridge comunica alla cache A che ora può inviare le operazioni in coda.
Tuttavia, nel caso in cui la coda della cache si riempia e l'eliminazione sia abilitata, la cache eliminerà gli elementi memorizzati nella cache, ma non le operazioni in coda. Ciò impedisce la perdita di operazioni.
Vedere anche
Topologie della cache
Cluster di cache
Cache locale
Cliente di cache
Cache cliente