In questa era di elaborazione rapida e affidabile delle applicazioni, tutti stanno optando per la memorizzazione nella cache distribuita per ottenere le migliori prestazioni dalla propria applicazione. Se le tue applicazioni web attirano traffico elevato causando transazioni estremamente elevate, allora ne hai assolutamente bisogno NCache.
NCache è una soluzione di memorizzazione nella cache distribuita in memoria che fornisce scalabilità lineare alle applicazioni .NET e Java. Tra i vari topologie che NCache ti fornisce, il più popolare è Replica partizionata topologia. La topologia della replica partizionata offre il meglio di entrambi i mondi, scalabilità lineare e disponibilità elevata.
Nel cluster Partitioned-Replica, i dati vengono partizionati e replicati su tutti i nodi. Quindi, se un nodo del server si interrompe, i suoi client possono continuare con le loro operazioni interagendo con la sua controparte di replica. Non appena un nodo si interrompe, viene attivato il processo di trasferimento dello stato per ribilanciare automaticamente i dati orfani. Ora supponi di avere un cluster Partitioned-Replica e di richiedere l'arresto di uno dei nodi per la manutenzione sapendo che riavvierai quel nodo non molto tempo dopo? Vediamo qual è questo comportamento e come potrebbe essere una sfida per te.
NCache Dettagli Replica partizionata NCache Docs Modalità di manutenzione NCache Docs
Sfide di ribilanciamento automatico durante la manutenzione
Ogni volta che un nodo viene arrestato in un cluster di replica partizionata; il trasferimento di stato viene attivato per riequilibrare i dati in tutto il cluster. Questo processo può richiedere più tempo del previsto, il che influisce sulle prestazioni dell'applicazione, soprattutto quando i nodi contengono decine di gigabyte di dati.
La figura seguente illustra il comportamento del cluster Partitioned-Replica quando un nodo viene arrestato.
In questa figura, hai un NCache Cluster di replica partizionata con tre nodi. Qui sono state introdotte cinque fasi per spiegare cosa succede quando un nodo viene arrestato in un cluster.
- Stage 1: NCache's Partitioned-Replica con tre nodi, A, B e C, ciascuno con un nodo attivo e uno replica.
- Fase 2: il nodo C viene arrestato brevemente per manutenzione. Il suo attivo e la sua replica non fanno più parte del cluster e viene attivato il trasferimento dello stato.
- Fase 3: dati redistribuzione nel cluster (totalmente inutile). Qui, i dati orfani del nodo C vengono divisi tra i restanti nodi A e B dopo che il trasferimento di stato si è interrotto. Secondo questa divisione, anche i loro nodi di replica vengono aggiornati. Questo trasferimento di stato non è assolutamente necessario perché il nodo interrotto verrà riavviato a breve.
- Fase 4: il nodo C si riavvia. Il cluster, in questa fase, si comporta come se il nodo C avesse lasciato il cluster. Dopo i dati redistribution, il nodo C viene riavviato.
- Fase 5: il nodo C si unisce nuovamente al cluster ed esegue nuovamente i dati redistributo. Poiché i suoi dati erano già stati distribuiti tra A e B, quindi quando C si ricongiunge, il trasferimento di stato viene nuovamente attivato in tutto il cluster per assegnare nuovi dati ai nodi.
Idealmente, questa sembra la soluzione perfetta. Arresti un nodo, si verifica il trasferimento di stato. Ripari tutto ciò che volevi e riavvii quel nodo. Il trasferimento statale viene nuovamente attivato per bilanciare tutti i bucket.
Ma perché non è questa la soluzione ideale? Cosa va storto qui?
Ci sono diversi inconvenienti nel richiedere inutilmente il trasferimento dello stato. Sono:
- Costo elevato dovuto a più chiamate di rete e sovraccarico di elaborazione.
- Elevata complessità temporale quando i nodi contengono una grande quantità di dati.
- Comportamento errato quando un nodo si riavvia durante il trasferimento di stato e porta al trasferimento di stato all'interno del trasferimento di stato.
NCache Dettagli Replica partizionata NCache Docs Modalità di manutenzione-NCache Docs
La soluzione: replica partizionata sensibile alla modalità di manutenzione
Prendendo in considerazione tutte queste battute d'arresto di trasferimento di stato non necessario che si verifica ogni volta che un nodo lascia e si unisce a un cluster, NCache vi fornisce Modalità di manutenzione.
La modalità di manutenzione consente di arrestare un nodo per un periodo specifico e avviarlo al termine della sua manutenzione. Questa modalità garantisce che durante il periodo di manutenzione di un nodo, il thread di trasferimento dello stato non venga attivato all'interno del cluster. Inoltre, è estremamente vantaggioso quando il cluster comprende una grande quantità di dati.
Come la modalità di manutenzione è diversa dal normale arresto di un nodo, è spiegato nella figura seguente.
- Fase 1: la struttura della topologia Partitioned-Replica of NCache viene mostrato dove un cluster POR comprende tre nodi server che contengono un'enorme quantità di dati.
- Fase 2: il nodo C si è fermato. Il nodo C viene interrotto per la manutenzione tramite la modalità di manutenzione.
- Fase 3: dati redistributo. Qui, la replica di C diventa attiva e inizia a indirizzare i client del nodo C. Ciò elimina la necessità di attivare il trasferimento dello stato, quindi il thread di trasferimento dello stato viene interrotto finché il cluster è in manutenzione. Ciò risolve il problema riscontrato quando il trasferimento di stato non necessario bilancia i dati nel cluster dopo l'arresto del nodo C.
- Fase 4: il nodo C è stato riavviato. Dopo essere stato arrestato per motivi di manutenzione, il nodo C attende di essere riavviato. Ogni volta che il cluster esce dalla modalità di manutenzione, viene avviato il nodo C.
- Fase 5: trasferimento dei dati. È quella fase del cluster in cui il nodo C riceve tutti i dati dalla sua parte di replica e aggiorna l'intero nodo (cioè Active C e Replica B) tramite il trasferimento di stato.
NCache Dettagli Replica partizionata NCache Docs Modalità di manutenzione-NCache Docs
Come fermare un nodo per manutenzione
È possibile arrestare un nodo per la manutenzione utilizzando Web Manager o PowerShell. Ecco come fermare un nodo per la manutenzione dal tuo Web Manager. All'arresto di un nodo, ti viene chiesto di menzionare il tempo di manutenzione per il quale desideri mantenere quel nodo in manutenzione. Questo timeout è considerato un periodo per il quale non può essere attivato alcun trasferimento di stato.
I passaggi seguenti consentono di arrestare qualsiasi nodo si desidera arrestare per la manutenzione.
- Accedi al tuo NCache Web Manager
- Vai a Clustered Caches e seleziona il cluster che necessita di manutenzione
- Tra i suoi vari nodi, seleziona quello che richiede manutenzione.
Vai alle sue impostazioni e seleziona l'opzione Sosta per manutenzione.
Come uscire da un nodo dalla modalità di manutenzione
Una volta che un cluster entra in modalità di manutenzione, Web Manager viene utilizzato per uscire da quel cluster da esso. Di seguito sono riportati i passaggi che devono essere seguiti:
- Dal tuo NCache Web Manager, vai a Cache raggruppate
- Seleziona il cluster in manutenzione.
- Vai alle sue Impostazioni e seleziona Uscire dalla modalità di manutenzione.
Oltre al Web Manager, ci sono diversi modi attraverso i quali un nodo può uscire dalla modalità di manutenzione. Questi scenari devono essere presi in considerazione poiché alcuni potrebbero influire sulle prestazioni dell'applicazione.
Un nodo può uscire dalla modalità di manutenzione nei seguenti casi:
- All'avvio del nodo in manutenzione: Se il nodo in manutenzione viene avviato manualmente, tramite il gestore o tramite il comando PowerShell, quel nodo esce dalla modalità di manutenzione.
- Quando il timeout scade: Allo scadere del timeout previsto per la manutenzione, viene attivato il trasferimento dello stato e il cluster esce automaticamente dalla modalità di manutenzione.
- Quando un nodo lascia il cluster: Nessun nodo può lasciare un cluster senza problemi finché è in manutenzione. Ma se uno dei nodi di quel cluster esce con forza, quel cluster uscirà inevitabilmente dalla modalità di manutenzione, nonostante sia ancora sotto il processo di manutenzione. Qui, il punto a cui dovresti prestare attenzione è che se lo stesso nodo che era in manutenzione se ne va, ci sono alte possibilità di perdita di dati.
Indipendentemente dal metodo utilizzato per uscire dalla modalità di manutenzione, quel segnale da solo è il segnale per il thread di trasferimento dello stato per attivare il processo di bilanciamento automatico in tutto il cluster.
Riassumendo
Se desideri un modo per sistemare l'applicazione di patch nella cache cluster della replica partizionata senza compromettere le prestazioni dell'applicazione, dai un'occhiata NCache Modalità di manutenzione. La modalità di manutenzione consente di correggere un bug, aggiungere una patch, aggiornare il software o l'hardware, senza introdurre tempi di inattività dell'applicazione. Tutto quello che devi fare è seguire i passaggi sopra menzionati e verificare di persona quanto sia straordinario NCache La modalità di manutenzione è.