NCache Alta disponibilità e manutenzione programmata

Questo video mostra come NCache mantiene i tuoi dati altamente disponibili fornendo il 100% di uptime e affidabilità dei dati. In questa particolare demo, avvierò e arresterò un nodo del server cache da un cluster di cache in esecuzione e ti mostrerò come NCache gestisce con successo ciò, senza alcun tempo di inattività o perdita di dati, per le applicazioni client.

Oggi parlerò di "come ottenere un'elevata disponibilità in NCache e come NCache ti offre alta disponibilità'. Come sai, NCache viene utilizzato in applicazioni mission-critical, che non possono permettersi tempi di inattività.

Ecco un'immagine di una server farm di applicazioni che utilizza un cluster di cache di più server e quindi sono presenti più origini dati. E di solito sono almeno due o più server cache.

NCache Utilizzato in applicazioni mission-critical
NCache Utilizzato in applicazioni mission-critical

E, NCache ti fornisce un file clustering dinamico della cache, in cui è possibile aggiungere o rimuovere server di cache in fase di esecuzione senza arrestare l'applicazione, perché NCache ha un'architettura peer-to-peer. E oggi lo dimostrerò nel video.

Userò la topologia partizione-replica, dove inizieremo e continueremo ad aggiungere più server e vedrai in questa topologia ogni server ha una partizione. Quindi, se inizio con un server, è solo una partizione e anche la replica si trova sulla stessa partizione o forse non c'è alcuna replica e quindi quando aggiungi un secondo server hai due partizioni. Quindi, tutti i dati della cache vengono divisi per metà ciascuno e ogni partizione viene replicata su un server diverso.

Topologia di memorizzazione nella cache: cache di partizione-replica

E poi, quando aggiungi un terzo server, hai tre partizioni e gli stessi dati vengono divisi in tre partizioni. Ogni partizione ha ora un terzo dei dati invece di avere la metà dei dati e il backup di ogni partizione viene eseguito su un server diverso. Quindi, questo è ciò che sto per dimostrare.

Aggiunta di client e server in fase di esecuzione

Fammi saltare rapidamente nel prodotto e mostrarti questo. Ho tre server cache che userò. Inizierò con uno e poi continuerò ad aggiungerne altri. E poi ho un cliente, in realtà sono proprio ora, seduto sulla macchina del cliente. Quindi, farò semplicemente clic su questo e aprirò il file NCache Web Manager, che è uno strumento di gestione basato sul Web. E attualmente, ecco come NCache arriva quando installi NCache. Quindi, come hai installato NCache su tutti e tre questi server, su ogni server c'era una "democache" che è stata installata. Quindi, ora avvierò la democache e vedrai che la democache è avviata.

Avvia una cache
Avvia una cache

Una volta avviato, aprirò anche una statistica su di esso e monitorerò anche la cache. Il monitoraggio mi dà una dashboard molto bella. C'è un dashboard del server e c'è un dashboard dei report. La dashboard del rapporto è molto simile alla finestra delle statistiche. Quindi, mi atterrò alla dashboard del server e la terrò qui. E, ora che ho questo in esecuzione, devo ora eseguire i client.

NCache viene fornito con uno strumento di stress test basato su Powershell. Quindi, lasciami digitare la parola NCache. C'è una gestione di Powershell, quindi eseguirò 'Test-stress' e gli darò un nome della mia cache, che è 'democache', come puoi vedere proprio qui 'Democache Test-Stress'. Il nome della cache non fa distinzione tra maiuscole e minuscole, quindi puoi inserirlo come preferisci.

Strumento per test di stress
Strumento per test di stress

Quando avvio l'applicazione, questo è il mio strumento di stress test. Il motivo è che c'è, quindi non è necessario eseguire alcuna programmazione per iniziare il test NCache. Puoi anche simulare lo stress attraverso questo strumento di stress test. Ecco perché si chiama strumento di stress test. Ma, sai, immagina solo che questa sarebbe la tua applicazione.

Ora, se accedo alla mia finestra delle statistiche, vedrai che ho un conteggio di circa, sai, 400 elementi che continua ad aumentare. Ho circa 981 o circa 1000 richieste al secondo da quell'unico cliente.

Finestra delle statistiche
Finestra delle statistiche

Ora andrò avanti ed eseguirò una seconda applicazione client. Quindi, posso continuare ad aggiungere più client avviando più istanze dello strumento di stress test o mi dispiace per le istanze di Powershell. Quindi, se vengo qui, lo ripeto Democache Test-Stress. Una volta fatto, vedrai che il conteggio o la richiesta ora è quasi raddoppiato. Perché ogni client, come hai visto in questa immagine, ogni client sta caricando il proprio carico di transazione sul server, quindi la capacità di transazione del server è quasi raddoppiata. Posso anche vedere qui che nella dashboard del mio server ho due client collegati a un cluster di cache a un nodo.

Aggiunto un secondo cliente
Aggiunto un secondo cliente

Quindi, c'è solo un server nel cluster che sto usando attualmente. Va bene, ora, supponiamo che ciò che accade nella vita reale è che, sai, la tua capacità aumenta e, tra l'altro, consigliamo un minimo di due server cache. Quindi, non dovresti mai avere un solo server cache in esecuzione su questo. Ma volevo solo iniziare con uno, quindi potrei aggiungere due server in fase di esecuzione per mostrarti.

Quindi, ora la prossima cosa che faccio è aggiungere un secondo server cache e il secondo server cache che aggiungerò è il 117. Andrò avanti e 117, dirò aggiungi. È stato aggiunto ma è stato interrotto. Quindi, farò clic qui e dirò inizia. Ciò avvierà semplicemente il nodo del server.

Aggiunta del secondo server di cache
Aggiunta del secondo server di cache

Una volta che inizierò qui, vedrai che un secondo nodo verrà aggiunto qui, lì. E il conteggio del conteggio della cache è diminuito. Non ti ho mostrato che il conteggio della cache era in realtà il doppio, ora che sono due server il conteggio della cache è diminuito e le richieste di transazione al secondo sono state divise a metà. Poiché metà delle richieste viene elaborata da questo server cache, metà di esse viene elaborata da questo server cache. Quindi, ecco come il conteggio è diminuito.

Statistiche

Quindi, ora ho appena aggiunto un server cache senza interrompere l'applicazione. Puoi vedere che lo strumento per lo stress test è in esecuzione qui e anche qui. Nessun problema. E quello che è successo ora è che le mie partizioni, quindi, ero un server, ora sono un cluster di due server. Quindi, c'è la partizione uno, la partizione due e ogni partizione viene salvata sull'altro server. Quindi, lascia che ti mostri di cosa si tratta. Quindi, ecco la partizione uno. Ha così tanti oggetti e la sua replica è proprio qui. Quindi, vedi, questa è quasi la stessa quantità di questa. E poi questa è la mia partizione due. Circa 1500 qualcosa ed è stato eseguito il backup qui.

Asincrono. Replica

Ora questa replica è asincrona. Quindi, questo conteggio non sarà sempre esatto. Ma alla fine sarà esatto anche se interrompi la transazione.

Ok. Ora, diciamo che il mio carico di transazioni continua a crescere. La mia attività sta andando bene e devo aggiungere più server perché devo aumentare la capacità di transazione. Posso anche aggiungere più clienti perché è quello che accadrà.

Il primo è che aggiungerò più client perché la prima cosa che farò è aggiungere più client, più server di applicazioni intendo. E ciò comporterà un carico di transazione più elevato. Guarda, questo carico di transazioni aumenterà, vedi. È andato a 1182 per server invece di 800 qualcosa e in realtà è andato ancora di più, è andato 1200 qualcosa.

Carico di transazione maggiore
Carico di transazione maggiore

Quindi, il carico delle transazioni continua ad aumentare. Lo posso vedere anche qui. Riesco a vedere la richiesta al secondo su ciascun server, che viene distribuita quando ho aggiunto più server, viene aumentata.

Quindi, ora che ho aggiunto più client, a un certo punto dovrò, sai, noterò che i miei server di cache stanno iniziando a rallentare perché la capacità di transazione sta esaurendo o forse la capacità di archiviazione di quanta memoria Ho in ogni server è al massimo. Quindi, devo aggiungere ancora un altro server.

In ogni caso, come dicevo, consigliamo un minimo di due server. Quindi, non dovresti mai avere almeno un singolo cluster di server in produzione. Perché ciò non ti dà un'elevata disponibilità. Quindi, quando ne hai almeno due e raggiungi il limite di capacità di questi due, allora è il momento di aggiungere un terzo server.

Come aggiungiamo un terzo server? Ho un terzo server proprio qui 157. Verrò qui immediatamente e dirò di aggiungere un server ed è 157. Quindi, verrò qui e aggiungerò 157. Di nuovo, è stato aggiunto ma si è fermato. Verrò qui, selezionerò questo e dirò inizia.

Aggiunta del terzo server di cache
Aggiunta del terzo server di cache

Una volta che comincio a notare che questo 1800 andrà giù. Guarda, non appena il terzo server entra, condividerà il carico, lì. Vedi, è sceso a circa 1100 qualcosa ciascuno.

Condivisione del carico
Condivisione del carico

Perché ora ho tre server invece di due e come ho mostrato qui che quando hai tre server, hai tre partizioni. Quindi, i dati di entrambe queste partizioni vengono ulteriormente suddivisi in tre partizioni.

Quindi, ora ogni partizione ha una replica su un server diverso ed è così che i dati vengono effettivamente distribuiti. Quindi, ho appena dimostrato che puoi aggiungere più server senza interrompere né l'applicazione né la cache. Quindi, tutto è... Voglio dire, l'applicazione è totalmente, sai, inalterata da questo cambiamento, dall'aggiunta di più server, il che è un aspetto fantastico NCache che ti permette di farlo.

Bene. Quindi, ora arriva il momento in cui forse è necessario disattivare anche un server. Esistono due modi per disattivare un server. Uno lo stai riducendo in modo permanente perché stai riducendo la tua capacità. Forse stai scendendo da tre server a due perché è un'attività stagionale. Hai avuto un periodo di picco di utilizzo durante le festività natalizie e ora tornerai di nuovo alla configurazione predefinita, sai, più piccola. Quindi, alcuni di questi server verranno effettivamente rimossi. Quindi, andiamo avanti e facciamolo.

Ho intenzione di rimuovere il server 157 in questo. Quindi, sceglierò il server 157 e dirò basta. Per prima cosa mi fermerò. Ora, come puoi vedere, mentre mi fermo, questo conteggio diminuirà e questo conteggio aumenterà ulteriormente. Vedi, è tornato a circa 2000 ciascuno. Ciò significa che i dati sono passati da questo a questo.

Rimozione/arresto del server in fase di esecuzione
Rimozione/arresto del server in fase di esecuzione

Sono praticamente passato da una configurazione a tre partizioni a una configurazione a due partizioni. Ogni partizione viene replicata, come puoi vedere qui ogni partizione. Quindi, questa partizione viene replicata proprio qui e questa partizione viene replicata proprio qui, ok. E nessun effetto sulle applicazioni come puoi vedere.

Quindi, questo gestisce praticamente la situazione in cui è necessario aggiungere un server, perché è necessario aumentare la capacità o è necessario disattivare un server, perché le esigenze di capacità sono cambiate. In realtà, a causa dell'uso stagionale, la capacità necessaria è cambiata.

Modalità di manutenzione

C'è un'altra situazione che è quella che chiamiamo modalità di manutenzione, in cui è necessario arrestare un server ma non perché la capacità è diminuita, è perché è necessario eseguire un po' di manutenzione. Diciamo che devi applicare alcune patch del sistema operativo o qualcosa del genere. Quindi, devi disattivare un server per forse cinque minuti, dieci minuti, mezz'ora qualcosa. Ma la tua cache ha enormi quantità di dati. Voglio dire, i nostri clienti hanno decine di gigabyte di dati in ogni server. Quindi, se si dispone di un cluster di tre, quattro, cinque, sei server e una combinazione di dati di decine di gigabyte in ciascun server, l'arresto di un server influisce effettivamente sulle prestazioni. Perché, ora, se dovessi ripartizionare, tutto per passare da tre partizioni a due partizioni, farai molto trasferimento di stato e poi per cosa, lo aggiungerai di nuovo. Quindi, abbiamo escogitato una funzione chiamata modalità di manutenzione, dove puoi dirlo NCache va bene, sto abbassando questo server ma non voglio che tu ripartizioni la cache, mantieni questo come tre nodi di partizione, partizione uno, partizione due e la replica tre, che è proprio qui, diventerà la partizione tre. E questo rimane attivo. È un accordo temporaneo. Alla fine, una volta terminato, riporterai questo nodo e tornerà di nuovo a questa immagine.

Modalità di manutenzione verso il basso di un server di cache
Modalità di manutenzione verso il basso di un server di cache

Lascia che ti mostri come puoi farlo, ok. Quindi, prima di tutto raggiungerò di nuovo la configurazione dei tre server, aggiungerò questo, supponiamo di averlo rimosso, ora lo aggiungerò di nuovo. Avrei dovuto rimuoverlo, l'ho solo fermato. Ma lo aggiungerò di nuovo. Sono di nuovo su un cluster a tre nodi. I miei dati sono distribuiti uniformemente.

Modalità di manutenzione verso il basso di un server di cache
Modalità di manutenzione verso il basso di un server di cache

Il mio carico di transazione è distribuito uniformemente e posso vederlo anche qui. In realtà, questo non lo sta ancora mostrando, lo farà. Ma in ogni caso. Quindi, una volta che ho questo, ora devo fare la manutenzione. Quindi, verrò qui e dirò, ok di nuovo, ricorda che ogni nodo ha circa 1200 elementi ciascuno, ok.

Quindi, se dovessi ridurlo, a un cluster di due nodi questo dovrebbe salire a oltre 2000 elementi in ciascun nodo, il che non è ciò che accadrà perché verrò qui e dirò: qui dirò di interrompere questo per la manutenzione.

Arresta nodo per manutenzione
Arresta nodo per manutenzione

Quando clicco su questo mi chiede, per quanto tempo vuoi tenerlo in manutenzione? Ovviamente, questo timeout è molto importante perché alla fine di quel timeout NCache presume che non sia più manutenzione. Perché, se non riaggiungi il nodo entro questo momento, NCache presuppone che tu l'abbia effettivamente rimosso in modo permanente, come l'altro rimosso, che ti avevo appena mostrato e rimuoverà e partiziona di nuovo la cache.

Arresta nodo per manutenzione
Arresta nodo per manutenzione

Tuttavia, se lo aggiungi di nuovo entro questo periodo di tempo ed è un periodo di tempo configurabile, se lo aggiungi di nuovo entro questo periodo di tempo, NCache farà quello che ti ho appena mostrato che non si ripartirà, manterrà semplicemente quella partizione, quella replica in una modalità di partizione temporanea. Quindi, lasciami dire, ok, sto dicendo di fermarlo ora. Quindi, veniamo qui 1300, 1300, 1470 e ora questo è completamente scomparso. Ma nota che questo conteggio non è aumentato. Come mai? Perché una delle repliche è diventata una partizione attiva. Non sai quale attraverso questa foto ma il fatto che il conteggio non sia salito, la replica è ancora lì. Questa replica è diventata una partizione attiva. Quindi, ora il server uno ha la partizione uno e la partizione tre, il server due ha la partizione due e una replica passiva uno e, il server tre è inattivo, cosa che devo fare, sai, devo eliminarlo per la manutenzione.

Modalità di manutenzione verso il basso di un server di cache
Modalità di manutenzione verso il basso di un server di cache

Quindi, ora vai e fai la tua manutenzione. Applichi le tue patch e, ora hai finito, ora vuoi ripristinarlo, quindi, di nuovo, vieni qui, non hai nemmeno bisogno di aggiungere nuovamente, dì solo ricomincia perché è stato interrotto. E, tra l'altro, l'applicazione era ancora in esecuzione senza alcuna interruzione. Quindi, tutto questo, tutte queste modifiche non richiedono alcuna interruzione dell'applicazione. Quindi, sto per dire ricominciare. E, una volta che dico inizia, ora guarda, questo riguadagnerà la sua posizione e sta recuperando di nuovo con i dati e vedrai che di nuovo è di nuovo allo stesso livello, di prima.

Avvia un nodo in fase di esecuzione

Conclusione

Quindi, come puoi vedere, ho dimostrato sia l'aggiunta che la rimozione di nodi in fase di esecuzione in modo permanente e anche la rimozione temporanea di un nodo per la manutenzione programmata. Quindi, questa è la fine della mia demo. Speravo di dimostrartelo NCache ti dà un'elevata disponibilità. È un tempo di attività del 100% in cui non è necessario disattivare nessuna delle applicazioni. Non ci sono interruzioni nell'applicazione.

Cosa fare dopo?

 
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.