AppFabric vs NCache Confronto (video)

Questo video mostra un confronto tra AppFabric v1.1 e NCache. Descrive le principali differenze di funzionalità tra i due prodotti. Per un confronto dettagliato, leggere il documento di confronto.

Principali usi di NCache

Oggi farò un confronto tra NCache e Microsoft AppFabricPrima di iniziare, vorrei darvi una breve introduzione a NCacheCi sono tre modi in cui puoi usare NCache.

  1. Memorizzazione nella cache degli oggetti: Il primo è il caching degli oggetti, che consente di migliorare le prestazioni e la scalabilità dell'applicazione, riducendo i costosi spostamenti del database e assicurandosi che il database non diventi mai un collo di bottiglia.
  2. Soluzione di memorizzazione nella cache: Il secondo è usare NCache come cache affidabile e scalabile per applicazioni ASP.NET in tre diverse aree. Una è quella di memorizzare lo stato della sessione in una web farm in NCacheIl secondo è quello di memorizzare la cache di output in una web farm e il terzo è quello di distruggere lo stato di visualizzazione delle visualizzazioni in NCache in una web farm. La cosa più importante è che l'archiviazione dello stato della sessione è una caratteristica molto popolare di NCache.
  3. Condivisione dei dati di runtime: La terza via NCache viene utilizzato per condividere dati in fase di esecuzione tra applicazioni in un modello di condivisione dati di pubblicazione/sottoscrizione.

NCache Distribuzione

Ecco una tipica distribuzione di NCache in un'azienda. È possibile creare un livello di caching comune per tutte le applicazioni con un minimo di due server cache per la ridondanza. In alternativa, è possibile avere un livello di caching separato per ogni applicazione, a propria scelta. Il livello di caching è solitamente una piattaforma a 64 bit, perché può disporre di più memoria anche se le applicazioni sono a 32 bit, e non è necessario disporre di un livello di cache separato. È possibile eseguire il server cache sullo stesso server del server web o applicativo.

NCache Distribuzione

NCache vs AppFabric

Quindi, ecco le aree in cui NCache differisce da Microsoft AppFabricCi sono sette aree.

  1. Modello di maturità e supporto del prodotto
  2. Prestazioni e scalabilità della cache
  3. Alta disponibilità della cache
  4. Topologie di memorizzazione nella cache
  5. Strumenti grafici di amministrazione e monitoraggio
  6. Consigli NCache caratteristiche (non in AppFabric)
  7. Supporto Java nativo

Modello di maturità e supporto del prodotto

Quindi, nel modello di maturità e supporto del prodotto, NCache è sul mercato da circa sette anni. La versione attuale è la 4.1, la nona del prodotto. È un prodotto molto stabile e maturo. D'altro canto AppFabric è la versione 1.1. Quindi, è una seconda versione sul mercato. E, su un modello di supporto NCache offre opzioni di supporto regolari e 24 ore su 7, XNUMX giorni su XNUMX. È possibile acquistare il supporto con NCacheE, soprattutto con un supporto 24 ore su 7, XNUMX giorni su XNUMX, puoi chiamarci giorno e notte se hai problemi, in particolare di tipo produttivo, e sai, quel tipo di supporto, sai, può davvero aiutare la tua attività, se hai problemi.

Prestazioni e scalabilità

Un altro aspetto riguarda le prestazioni e la scalabilità della cache. Come sapete, il motivo principale per cui si utilizza la cache distribuita è migliorare le prestazioni e la scalabilità delle applicazioni. NCache in quest'area è più veloce e più scalabile di AppFabricI nostri benchmark interni mostrano una differenza notevole. E puoi anche effettuare il tuo benchmarking. Ti forniamo uno strumento di stress test e puoi vedere quanto più velocemente NCache è.

Ecco uno sguardo ad alcuni benchmark. In un cluster di cache a 2 nodi si hanno 50,000 letture al secondo e 32,000 scritture al secondo, come si può vedere, con un aumento lineare.

NCache Parametri di riferimento

Alta disponibilità della cache

L'altro aspetto è l'elevata disponibilità della cache. La cache viene eseguita nel data center, quindi non è possibile permettersi che la cache distribuita si interrompa. NCache Offre il 100% di uptime grazie a un'architettura cluster peer-to-peer auto-riparante. Quando usiamo la parola cluster non intendiamo cluster Windows, abbiamo il nostro cluster di cache basato su TCP e questo cluster non ha un singolo punto di errore. Ciò significa che è possibile aggiungere o rimuovere qualsiasi server dal cluster di cache. Non c'è un master o uno slave, tutti sono presenti. Quindi, questo rende NCache altamente dinamico.

Alta disponibilità della cache

AppFabric d'altro canto ha un'architettura di cluster master-slave e presenta anche un singolo punto di errore nell'archiviazione dei file di configurazione che è possibile superare memorizzando la configurazione in un cluster di server SQL. Ma, ancora una volta, AppFabric di per sé non fornisce capacità che NCache fa.

Topologie di memorizzazione nella cache (cache client)

Le topologie di memorizzazione nella cache sono fondamentalmente metodi per archiviare i dati nella cache e anche le strategie di connessione. NCache ha un ricco set di topologie di caching. Per maggiori dettagli su ciascuna di queste topologie, guarda il video su NCache Architettura Sul nostro sito web. Ma, giusto per menzionare, abbiamo una cache mirrorata, che è una topologia attiva-passiva a due nodi. Abbiamo una cache replicata, ottima per i dati di riferimento. Abbiamo una cache partizionata, che suddivide la cache su più server, e una cache con repliche di partizioni, che è una combinazione di partizionamento e replica, ma esegue una replica molto intelligente. Quindi, anche se si hanno più di due server, ci sono solo due copie della cache. È la nostra topologia di caching più diffusa.

E poi abbiamo un file Cache cliente che, sebbene AppFabric Sostiene anche di avere una cache client, ma in realtà si tratta di una cache locale autonoma. La nostra cache client in realtà si sincronizza con un cluster di cache, e ne parlerò un po'.

Ecco la cache del client NCache ha. Quindi, se dovessi avere un cluster di caching qui, la cache client risiederebbe effettivamente sulla tua app web o sul server applicativo. È una cache locale, ma è connessa alla cache clusterizzata. Ciò significa che, se qualsiasi dato si trovi nella cache client cambia nella cache cluster, la cache clusterizzata avvisa la cache client in modo che possa aggiornarsi.

L'altra parte davvero interessante della cache client è che non è necessario effettuare alcuna programmazione speciale: basta inserirla in una configurazione.

Topologia Bridge (per la replica WAN)

Un'altra zona che NCache Questa topologia è chiamata bridge per la replica WAN. Se si dispone di più data center, più sedi geografiche, sia per il disaster recovery che per più data center attivi, è possibile utilizzare la topologia bridge per replicare la cache sulla WAN in modo asincrono senza rallentare le cache su entrambi i lati. Quindi, cosa succede, diciamo, che qualsiasi cosa si aggiorni qui viene messa in coda nel bridge; il bridge apporta le stesse modifiche nella cache di destinazione in modalità attivo-passivo. In modalità attivo-attivo, il bridge funziona in due direzioni. Quindi, entrambe le parti possono apportare modifiche e applicarle all'altra.

Replicazione WAN (attivo-attivo e attivo-passivo)

In un attivo-attivo c'è una logica di risoluzione dei conflitti in NCache Bridge che risolve automaticamente i conflitti, oppure è possibile fornire un gestore di risoluzione dei conflitti in grado di risolverli. Quindi, esiste una topologia hub spoke attiva-passiva, attiva-attiva, in cui è presente un centro e più cache satellite passive, e una topologia a stella in cui è presente un centro e più topologie o cache satellite attive.

Strumenti di amministrazione e monitoraggio

Un'altra area è quella degli strumenti grafici di amministrazione e monitoraggio. NCache ha strumenti molto facili da usare. Diciamo che c'è un NCache gestore che è uno strumento basato su GUI che consente di configurare e amministrare cluster di cache da un'unica posizione. Esiste un NCache monitor, consente di monitorare l'attività della cache in fase di esecuzione. Esistono molti strumenti da riga di comando che è possibile utilizzare nello scripting. Ci sono molti contatori PerfMon. Ci sono molti eventi che NCache registri nel registro eventi di Windows. In questo modo, puoi essere avvisato quando accadono determinate cose. C'è anche una notifica via e-mail che NCache può fare. Quindi, può inviarti un'e-mail quando accadono determinate cose. Ad esempio, potresti impostarlo in modo che se il consumo di memoria supera una certa soglia, diciamo, se cresce di più del 70% NCache ti invierà un'e-mail o un evento di accesso.

Ecco NCache gestore. Assicurati che sia uno strumento di tipo esploratore. Puoi gestire i cluster di cache e anche i client remoti. Ecco NCache Monitor. Permette di visualizzare l'intero cluster di cache e molti altri dettagli in modo molto semplice. È uno strumento in stile dashboard, quindi puoi decidere cosa visualizzare.

Consigli NCache Caratteristiche

OK, passiamo ad alcune delle funzionalità di memorizzazione nella cache che NCache ha, che AppFabric non fornisce. Una è questa cosa chiamata Serializzazione Compatta Dinamica.

Serializzazione compatta dinamica

NCache Offre la possibilità di generare codice di serializzazione per gli oggetti in fase di esecuzione, compilarlo e utilizzarlo per eseguire questa serializzazione al posto della normale serializzazione .NET. È possibile combinare questa funzionalità con la normale serializzazione .NET. Questa soluzione è molto più veloce e compatta, e velocizza l'applicazione.

Compressione

Un'altra caratteristica è la compressione. È possibile specificare una certa soglia. Quindi, diciamo, se un oggetto è più grande di 50k NCache lo comprimerà se lo specifichi in questo modo.

crittografia

C'è la crittografia. Di nuovo puoi attivarla. Attualmente NCache Fornisce la crittografia 3DES o tre DES. Stiamo aggiungendo altri algoritmi di crittografia.

Opzioni di configurazione del server

Ci sono un sacco di opzioni di configurazione del server. Ad esempio, NCache consente di utilizzare più schede di rete per migliorare la larghezza di banda sui server cache e un sacco di altre funzionalità.

Scadenza assoluta

Ecco alcune funzionalità di memorizzazione nella cache da una prospettiva programmatica, che NCache ha, che AppFabric non fornisce. Una si chiama Scadenza Assoluta, con cui puoi far scadere gli articoli in una data e ora assolute, oppure puoi dire che sono scaduti tra dieci minuti.

Dipendenza dalla cache

Un altro è la dipendenza dalla cache, che è qualcosa che l'oggetto cache ASP.NET ha ma che una struttura non supporta, NCache Supporta pienamente questa funzionalità. Esistono dipendenze basate su chiave, dipendenze basate su file e dipendenze personalizzate. Nella dipendenza basata su chiave, un elemento della cache dipende da un altro. Supponiamo che A dipenda da B: se B viene aggiornato o rimosso, A viene automaticamente rimosso. Lo stesso vale per le dipendenze basate su file e personalizzate.

Sincronizzazione con il database

C'è una sincronizzazione con la funzionalità del database. Con NCache ci sono due modi diversi, uno è chiamato SQL Dependency dove NCache utilizza eventi .NET per sincronizzare la cache con SQL Server 2005-2008 o Oracle su Windows. L'altra è la dipendenza basata sul polling, che funziona con qualsiasi database compatibile con OLEDB. Anche in questo caso, ciò consente NCache per comunicare direttamente con il tuo database e sincronizzare la cache se i dati corrispondenti cambiano nel database.

Lettura dinamica, scrittura dinamica e scrittura in background

Un'altra caratteristica è la lettura dinamica, la scrittura e la scrittura dietro. Ora la lettura e la scrittura sono fornite in AppFabric, ma NCache Dispone di un meccanismo Read-through e Write-through molto potente. Molto dinamico e facile da gestire. Il Write-Behind è un meccanismo in cui la cache viene aggiornata immediatamente, ma gli aggiornamenti del database vengono messi in coda e tale coda viene replicata su più server cache. In questo modo, se un server cache dovesse interrompersi, la coda non andrebbe persa.

Caricatore di cache

Un'altra caratteristica è il caricatore di cache che puoi implementare e viene chiamato da NCache all'avvio della cache. Quindi, in pratica, puoi pre-popolare la cache con il caricatore della cache.

Blocco dell'oggetto

Un'altra funzionalità è il blocco degli oggetti, grazie al quale è possibile bloccare un determinato oggetto e nessuno potrà leggerlo o scriverci finché non lo si sblocca o finché il blocco non scade.

Operazioni di massa

Un'altra funzionalità sono le Operazioni in Massa. Questa è una funzionalità molto utile per le prestazioni. Supponiamo che si vogliano recuperare 1,000 elementi dalla cache e si conoscano tutte le chiavi, è possibile recuperarli tutti in un'unica chiamata, invece di effettuare 1,000 chiamate diverse.

Gruppo/Sottogruppo e tag denominati

C'è una funzione di raggruppamento e di tagging. Ora il tagging è presente in AppFabric, NCache ce l'ha anche, ma NCache Ha anche i tag denominati, che sono davvero utili. Supponiamo che, se si memorizza un documento XML, si possano specificare i propri tag denominati. Quindi, esiste un concetto di chiave e valore, e poi una ricerca basata su questi elementi chiave-valore, e ovviamente il raggruppamento. Esiste un concetto di gruppo e sottogruppo. Quindi, è possibile ottenere tutto ciò che appartiene a un gruppo.

Ricerca con Object Query Language e LINQ

C'è una funzione di ricerca in NCache. NCache ha un tipo di linguaggio di query SQL chiamato OQL o Object Query Language. NCache fornisce anche l'integrazione con LINQ. Quindi, puoi cercare NCache direttamente tramite OQL o tramite LINQ, e fare qualcosa come 'seleziona clienti dove customer.city = New York, e NCache ti restituirà tutti quei clienti.

API di streaming

Esiste un'API di streaming per oggetti di grandi dimensioni, che consente di leggerne porzioni e inviarle in streaming ai client.

Notifiche di eventi

NCache ha anche delle notifiche di eventi molto potenti, molto più di quello che AppFabric Ha. Ci sono eventi basati su chiavi, separati per Aggiungi, Aggiorna o Elimina. Ci sono anche notifiche generiche. Quindi, riceverai una notifica ogni volta che qualcosa viene aggiunto, inserito o rimosso. Si tratta di tre notifiche diverse. Questa funzione è disattivata per impostazione predefinita, ma puoi attivarla perché può richiedere molto traffico. Quindi, a meno che tu non ne abbia bisogno, l'abbiamo mantenuta disattivata.

C'è una notifica personalizzata che è davvero molto potente. Permette alla tua applicazione di attivare un evento personalizzato in NCache, quindi allora NCache propagherà l'evento a tutti gli altri client connessi alla cache. Ciò consente alle diverse applicazioni di coordinare la condivisione dei dati in fase di esecuzione.

Interrogazione continua

Esiste una funzionalità di query continua. È simile alla dipendenza SQL dalla cache stessa. Quindi, si specifica un tipo SQL di query, diciamo di nuovo "select customer where customer.city = New York", e NCache monitorerà quel set di dati. Quindi, se un cliente viene aggiunto, aggiornato o eliminato con quel criterio NCache ti avviserà.

Fornitore di cache di livello 2 per NHibernate ed Entity Framework

NCache Dispone di un provider di cache di Livello 2 o L2 per NHibernate ed Entity Framework. NHibernate è un motore di mapping OR open source, mentre Entity Framework è un motore di mapping OR di Microsoft.

Supporto Java nativo in NCache

Un'altra zona che NCache Ha un supporto Java nativo. L'API Java è equivalente al 100% a .NET ed è completamente nativa. Ciò significa che le applicazioni possono essere eseguite su qualsiasi piattaforma UNIX e possono comunicare con lo stesso cluster di cache a cui comunicano le applicazioni .NET. Non c'è interoperabilità. Sia i client .NET che Java utilizzano lo stesso protocollo a livello di socket per comunicare con la cache.

Esiste una condivisione di dati di runtime tra applicazioni Java e .NET tramite NCache. NCache Utilizza un formato binario compatibile sia con Java che con .NET, quindi è superveloce. Non deve effettuare alcuna trasformazione basata su XML.

Esistono notifiche di eventi comuni. Quindi, un'applicazione .NET può generare un evento e l'applicazione Java può intercettarlo. È anche possibile scrivere i gestori di read-through e write-through in Java. È anche possibile scrivere il loader della cache in Java. NCache Esegue anche la serializzazione dinamica compatta per Java. Quindi, genererà il codice di serializzazione in fase di esecuzione, lo compilerà e lo eseguirà, proprio come la serializzazione dinamica compatta di .NET. NCache può utilizzare il NCache gestore anche per le librerie Java.

Questa è la fine della mia presentazione. Lasciate che vi mostri rapidamente cosa potete fare. Dovreste andare sul nostro sito web e leggere questo breve... sezione video dei prodottie assicurati di guardare questo NCache architettura e video sulle topologie di memorizzazione nella cache e video sui 5 passaggi per iniziare. Questi sono video molto utili, quindi continuate pure scarica il NCache Impresa, sia a 32 bit che a 64 bit. È una versione di prova completamente funzionante di 30 giorni che puoi utilizzare. Grazie mille.

Cosa fare dopo?

 

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