Risolvi le limitazioni della cache ASP.NET nelle Web farm con NCache

Microsoft fornisce l'oggetto ASP.NET Cache nell'ambito dell'applicazione di ASP.NET, che consente di memorizzare nella cache i dati dell'applicazione e ridurre quei costosi viaggi del database e migliorare le prestazioni di ASP.NET. Ecco come viene in genere utilizzata la cache ASP.NET.

using System.Web.Caching;
...
string key = "Employee:EmployeeId:1000";
Employee employee = (Employee)Cache[key];

if (employee == null){    
  // Load Employee from DB & put it in the Cache
  LoadEmployeeFromDb(employee);
  Cache.Insert(key, employee, null, 
               Cache.NoAbsoluteExpiration, 
               Cache.NoSlidingExpiration, 
               CacheItemPriority.Default, null );
}

Limitazioni della cache ASP.NET nelle Web farm

ASP.NET Cache è una cache in-process (InProc) autonoma e pertanto presenta molte limitazioni se l'applicazione viene distribuita in una Web farm con bilanciamento del carico. Queste limitazioni sono:

  • Più copie della cache non sincronizzate: Più copie della cache nei Web garden o nelle Web farm non vengono sincronizzate tra loro perché ASP.NET Cache è autonomo. E questo pone un grave problema di integrità dei dati per la tua applicazione.
  • Cache persa durante il riciclo del processo di lavoro: Tutti i dati di ASP.NET Cache vengono persi quando il processo di lavoro viene riciclato. E ciò causa un problema di prestazioni perché è necessario ricaricare nuovamente l'intera cache dal database.
  • Il problema della dimensione della cache è limitato: ASP.NET Cache deve risiedere all'interno del limite di memoria del processo di lavoro ASP.NET e ciò pone un severo vincolo sulle dimensioni della cache.
  • La sincronizzazione della cache tramite DB presenta problemi: SQL CacheDependency in ASP.NET Cache consente di sincronizzare la cache con il database. Inoltre, alcune persone lo usano per sincronizzare più copie della cache su diversi server Web tra loro passando attraverso il database. Tuttavia, ciò presenta importanti problemi di prestazioni e scalabilità perché il database è di nuovo al centro di tutte le attività e SQL CacheDependency di per sé non è molto scalabile.

Cache distribuita (NCache): Soluzione per Web Farm

NCache è una cache distribuita e risolve tutte le limitazioni di ASP.NET Cache sopra menzionate. Ecco come NCache affronta queste limitazioni:

  • Cache sincronizzata nella web farm: NCache è un cache distribuita e sincronizza la cache su più server in una web farm. Ciò significa che non ci sono problemi di integrità dei dati con NCache.
  • Cache OutProc nel giardino web: NCache è una cache fuori processo, quindi più processi di lavoro possono condividere una cache comune.
  • Dimensioni della cache molto scalabili: NCache non solo inserisce qualsiasi tipo di processo di lavoro ASP.NET di limitazione delle dimensioni della memoria, ma consente anche di farlo aggiungi più server cache per aumentare la capacità di archiviazione. Quindi, puoi avere facilmente 100 GB o più di dimensioni della cache.
  • Scalabilità della cache per transazioni elevate nelle web farm: NCache è una cache distribuita e fornisce topologie di memorizzazione nella cache scalabili. Questo permette NCache per ridimensionare il cluster di cache senza problemi.
  • La cache è altamente affidabile con la replica dei dati: NCache fornisce replica intelligente dei dati senza rinunciare a nessuna prestazione. Questa replica dei dati garantisce che, anche se un server cache si interrompe, nessun dato viene perso. Ciò consente all'applicazione ASP.NET di memorizzare nella cache i dati senza preoccuparsi della perdita di dati.

NCache ha ASP.NET Cache API più altro

NCache fornisce tutte le funzionalità di ASP.NET Cache con un'API plus identica. Questo ti consente di farlo migrare da ASP.NET Cache a NCache senza soluzione di continuità. Cambia solo lo spazio dei nomi da Sistema.Web.Caching a Alachisoft.NCache.Web.Caching e assicurati che tutti gli oggetti memorizzati nella cache siano serializzabili.

Inoltre, NCache fornisce numerose funzionalità di memorizzazione nella cache che ASP.NET Cache non dispone. Ecco un elenco parziale:

Leggi di più su tutto NCache Caratteristiche.

Come utilizzare rapidamente NCache?

Ecco alcuni semplici passaggi che potresti intraprendere per trarne rapidamente vantaggio:

  1. Installazione NCache: sui tuoi server web e due server cache
  2. Crea una cache: attraverso una GUI basata NCache Strumento di gestione
  3. Memorizza nella cache i dati dell'applicazione NCache: Sarà necessario fare riferimento NCache assemblaggi e poi fare NCache Chiamate API per archiviare e recuperare gli oggetti .NET dalla cache
  4. Monitora le prestazioni di ASP.NET: ora puoi monitorare le prestazioni di ASP.NET e anche NCache e le prestazioni. NCache fornisce un ricco set di contatori PerfMon con cui monitorare

Cosa fare dopo?

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