Clustering dinamico della cache per un'elevata disponibilità

NCache dispone di clustering dinamico della cache con autoriparazione basato su un'architettura peer-to-peer per fornire il 100% di uptime. Questo è un cluster basato su TCP in cui non ci sono nodi master/slave e invece ogni server nel cluster è un peer. Ciò consente di aggiungere o rimuovere qualsiasi server di cache in fase di esecuzione dal cluster senza interrompere né la cache né l'applicazione.

Architettura peer to peer (autoguarigione)

NCache cluster ha un'architettura peer-to-peer. Ciò significa che non ci sono nodi Master/Slave e ogni server è peer. È presente un nodo Coordinatore cluster che è il nodo più vecchio del cluster. Se il nodo Cluster Coordinator si interrompe, quello successivo più vecchio diventa automaticamente il coordinatore.

Cluster Coordinator gestisce tutte le operazioni relative al cluster, inclusa l'appartenenza al cluster quando i nodi vengono aggiunti o rimossi, per la mappa di distribuzione Cache partizionata / Cache di replica partizione topologia e altre informazioni sulla configurazione della cache. Cluster Coordinator ha anche gestito l'integrità del cluster e rimuove forzatamente tutti i server cache parzialmente connessi a tutti gli altri server nel cluster.

Cluster di cache dinamica

Clustering dinamico

NCache ha una architettura di clustering dinamico. Questo significa che puoi aggiungere o rimuovere qualsiasi server di cache dal cluster senza arrestare la cache o le applicazioni. Ogni volta che si aggiunge o si rimuove un server cache, l'appartenenza al cluster viene aggiornata immediatamente in fase di esecuzione e propagata a tutti i server del cluster nonché a tutti i client connessi al cluster. Questo aggiornamento e propagazione del runtime consente NCache per essere sempre attivo e funzionante anche quando vengono apportate tali modifiche.

Il clustering dinamico consente di eseguire le seguenti operazioni:

  • Aggiungi/Rimuovi server cache in fase di esecuzione: senza fermare la cache o la tua applicazione
  • Appartenenza al cluster: viene aggiornato in fase di esecuzione e propagato a tutti i server del cluster ea tutti i client connessi al cluster.

Connessioni client dinamiche

NCache ti consente anche di aggiungere o rimuovere client di cache in fase di esecuzione senza arrestare la cache o altri client. Quando aggiungi un client, questo client deve solo conoscere qualsiasi server cache nel cluster a cui connettersi. Una volta connesso a quel server, riceve informazioni sull'appartenenza al cluster e sulla topologia di memorizzazione nella cache in base alle quali decide a quali altri server connettersi.

  • Aggiungi/Rimuovi client in fase di esecuzione: senza fermare la cache o la tua applicazione.
  • Cache partizionata/Cache di replica partizione: il client si connette a tutte le partizioni in tutti i server cache (non alle repliche perché le partizioni comunicano con le loro repliche). Ciò consente al client di andare direttamente dove si trovano i dati per le letture e le scritture. E, se un nuovo server viene aggiunto al cluster, il client riceve informazioni aggiornate sull'appartenenza al cluster e quindi si connette anche a questo server cache appena aggiunto.
  • Cache replicata: in caso di Cache replicata, il client si connette semplicemente a un server cache nel cluster ma in modo bilanciato per garantire che tutti i server cache abbiano lo stesso numero di client. Il client ottiene le informazioni sul bilanciamento del carico da questo server cache e in base a ciò, se necessario, si riconnette al server cache appropriato. Il client si connette a un solo server cache perché ogni server ha l'intera cache, quindi tutte le letture e le scritture sono possibili proprio lì.
  • cache speculare: in caso di cache specchiata, il client si connette solo al nodo attivo in questo cluster a 2 nodi. Se il client si connette al nodo passivo, il nodo passivo informa il client del nodo attivo e il client si riconnette automaticamente al nodo attivo. Se il nodo attivo si interrompe e il nodo passivo diventa attivo, tutti i client si connettono automaticamente al nuovo nodo attivo.
Connessioni client dinamiche

Configurazione dinamica

NCache fornisce anche la configurazione dinamica della cache e dei client. Lo scopo è consentire di apportare modifiche in un secondo momento quando la cache è in esecuzione senza arrestare la cache o l'applicazione.

  • Propaga a tutti i server e client in runtime: questo include tutta la configurazione e le sue modifiche e anche la mappa di distribuzione.
  • Configurazione della cache: quando viene creata una configurazione della cache tramite gli strumenti di amministrazione, queste informazioni di configurazione vengono copiate su tutti i server cache conosciuti in quel momento. Inoltre, qualsiasi nuovo server aggiunto in fase di esecuzione riceve l'intera configurazione della cache e la copia sul disco locale.
  • Modifiche alla configurazione dell'applicazione a caldo: puoi modificare parte della configurazione della cache in fase di esecuzione tramite un "Applicazione a caldo" caratteristica di NCache. Quando lo fai, le informazioni di configurazione aggiornate vengono propagate a tutti i server cache in fase di esecuzione e salvate sui loro dischi. Una parte di queste informazioni viene inviata anche a tutti i clienti che sono pertinenti alle loro esigenze.
  • Mappa di distribuzione (cache partizionata/partizione-replica): questo viene creato all'avvio della cache e quindi copiato su tutti i server di cache e client di cache. Questa mappa di distribuzione contiene informazioni su quali bucket (su un totale di 1000 bucket nella cache in cluster) si trovano su quale partizione.

Failover della connessione all'interno del cluster

Tutti i server cache nel cluster sono collegati tra loro tramite TCP. Inoltre, ogni server cache è connesso a tutti gli altri server cache nel cluster, inclusi eventuali nuovi server aggiunti in fase di esecuzione. NCache fornisce vari modi per garantire che tutte le connessioni all'interno del cluster siano mantenute attive nonostante l'interruzione della connessione. L'interruzione della connessione di solito si verifica a causa di un problema tecnico di rete dovuto a un router o firewall o a un problema con la scheda di rete o il driver di rete.

  • Tentativi di connessione: se la connessione tra due server cache si interrompe, NCache il server esegue automaticamente più tentativi per stabilire questa connessione. Questi tentativi vengono eseguiti fino all'esaurimento del periodo di "timeout". Nella maggior parte dei casi, questo ristabilisce la connessione.
  • Battito cardiaco Keep-Alive: NCache ha anche una funzione per fare in modo che ogni server cache continui a inviare alcuni piccoli pacchetti di dati come battito cardiaco a tutti gli altri server. Ciò garantisce che se si verifica un problema di rottura del socket di rete, i server della cache lo sapranno e lo risolveranno tramite tentativi.
  • Server parzialmente connessi: nonostante i tentativi, ci sono momenti in cui una connessione non viene ripristinata entro il periodo di timeout e un server cache presume che uno o più degli altri server cache siano inattivi. Quindi, continua a funzionare senza di loro. Ma in realtà gli altri server non sono inattivi e sono infatti visti da alcuni altri server nel cluster. Questo è chiamato server parzialmente connessi. Quando ciò accade, il Cluster Coordinator ne prende nota e rimuove forzatamente il server "Parzialmente connesso" dal cluster. In questo modo, il cluster torna integro. Inoltre, il server rimosso può rientrare nel cluster tramite l'intervento manuale.

Failover della connessione con i client

Tutti i client cache sono connessi a uno o più server cache nel cluster tramite TCP a seconda delle topologie di memorizzazione nella cache. Per la cache partizionata/di replica partizione, ogni client è connesso a tutti i server di cache. Per Replicated Cache, ogni client è connesso a uno solo dei server cache di solito tramite un algoritmo di bilanciamento del carico utilizzato dai server cache. E, per Mirrored Cache, tutti i client sono connessi solo al nodo attivo e si connettono al nodo passivo solo quando il nodo attivo si interrompe e il nodo passivo diventa nodo attivo.

  • Tentativi di connessione: se si interrompe una connessione tra un client e i server cache, NCache client esegue automaticamente più tentativi di connessione per stabilire questa connessione. Questi tentativi vengono eseguiti fino all'esaurimento del periodo di "timeout". Nella maggior parte dei casi, ciò ristabilisce la connessione senza che l'applicazione client se ne accorga. Se non è possibile stabilire una connessione, viene generata un'eccezione all'applicazione client in modo che possa gestirla.
  • Battito cardiaco Keep-Alive: NCache ha anche una funzione per fare in modo che ogni client continui a inviare alcuni piccoli pacchetti di dati come battito cardiaco a tutti i server cache a cui è connesso. Ciò garantisce che se si verifica un problema di rottura del socket di rete, il client lo saprà e lo risolverà tramite tentativi di connessione.
  • Client parzialmente connessi (cache partizionata/partizione-replica): nonostante i tentativi, ci sono momenti in cui una connessione non viene ripristinata entro il periodo di timeout e un client cache presume di non essere in grado di raggiungere uno o più degli altri server cache anche se potrebbero non essere inattivi. Quindi, in caso di Partitioned / Partition-Replica Cache, interagisce con altri server per leggere o scrivere tutti i dati anche se la sua mappa di distribuzione gli dice che il server con cui non può parlare ha i dati. In questo caso, l'altro server cache funge da intermediario per eseguire correttamente l'operazione.
  • Disconnessione con il server (cache replicata/con mirroring): in caso di Replicated Cache, il client è connesso a un solo server e se questa connessione si interrompe, il client si connette automaticamente a uno degli altri server cache. In caso di Mirrored Cache, se il client non è in grado di connettersi al nodo attivo, presume che sia inattivo e tenta di connettersi al nodo passivo.

Cosa fare dopo?

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