ASP.NET è ora diventata una tecnologia molto popolare per le app Web e sempre più persone stanno sviluppando applicazioni ad alto traffico al suo interno. Per gestire il traffico più elevato, queste app ASP.NET vengono distribuite in farm Web con bilanciamento del carico in cui è possibile aggiungere più server all'aumentare del carico di traffico.
Ma si verifica un problema; il database e l'archiviazione dei dati non possono essere ridimensionati allo stesso modo per gestire i carichi di traffico più elevati. Quindi, quello che ottieni è un collo di bottiglia in cui la tua applicazione ASP.NET rallenta e può persino fermarsi. In tali situazioni, la memorizzazione nella cache dei dati è un modo eccellente per risolvere questo collo di bottiglia del database e dell'archiviazione dei dati. La memorizzazione nella cache consente di archiviare i dati dell'applicazione nelle vicinanze e di ridurre i costosi viaggi del database.
NCache Dettagli NCache Docs Caching ASP.NET
Che cos'è la cache ASP.NET?
ASP.NET Cache consente di memorizzare nella cache i dati dell'applicazione ed è una cache abbastanza ricca di funzionalità che include le seguenti funzionalità:
- Scadenze: Automatico assoluto e scorrevole Scadenze.
- Dipendenza dalla cache: Per gestire le relazioni di dati nella cache.
- SqlCacheDependency: Per sincronizzare la cache con il database.
- Richiamate: Per essere avvisato quando gli elementi vengono aggiornati nella cache.
Di seguito è riportato un codice di esempio che mostra l'utilizzo di ASP.NET Cache
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="kwrd">using</span> System.Web.Caching; <span class="rem">// Create a key to lookup in the cache</span> <span class="rem">// The key for will be like “Employees:PK:1000”</span> <span class="kwrd">string</span> key = <span class="str">"Employee:EmployeeId:"</span> + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; <span class="kwrd">if</span> (employee == <span class="kwrd">null</span>) { <span class="rem"> // item not found in the cache. load from db</span> LoadEmployeeFromDb(employee); <span class="rem"> // Now, add it to the cache for future reference</span> Cache.Insert(key, employee, <span class="kwrd">null</span>, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, <span class="kwrd">null</span> ); } |
Dipendenza dalla cache Dipendenza SQL Scadenza dei dati
Limitazioni della cache ASP.NET nelle Web farm
Nonostante le funzionalità di memorizzazione nella cache molto utili, ASP.NET Cache presenta alcune serie limitazioni. Alcuni di essi sono riportati di seguito:
- Non si sincronizza su un server o processi di lavoro: NET Cache non esegue la sincronizzazione tra più server o anche più processi di lavoro. Quindi, non puoi usarlo in una web farm o anche in un web garden a meno che i tuoi dati non siano di sola lettura mentre devi memorizzare nella cache tutti i tipi di dati, incluso uno che cambia abbastanza frequentemente.
- Limitazione della dimensione della cache: Non è possibile aumentare la cache ASP.NET in modo che sia più di quanto può contenere un processo di lavoro ASP.NET. Per i sistemi a 32 bit, questo è 1 GB e include anche il codice dell'app. Anche per i sistemi a 64 bit, le dimensioni non possono essere ridimensionate.
Utilizzare la cache distribuita compatibile con ASP.NET Cache
Il modo per aggirare questi limitazioni di ASP.NET Cache è usare una cache distribuita come NCache per web farm. NCache fornisce le stesse funzionalità di ASP.NET Cache e altre ancora. Ma, come cache distribuita, NCache sincronizza facilmente su più server. Ecco alcuni vantaggi da cui ottieni NCache:
- Il carico delle transazioni di Scale è molto piacevole: Puoi continuare ad aggiungere più server di cache al cluster di cache man mano che la tua web farm cresce da 2 a 200 server. NCache non diventa mai un collo di bottiglia nella gestione di più traffico.
- L'archiviazione dei dati di Scale bene: Man mano che aggiungi più server di cache, la tua capacità di archiviazione della cache aumenta a causa di Topologia della cache di partizione.
- Replica i dati per l'affidabilità: È possibile garantire che non si verifichi alcuna perdita di dati anche se un server si interrompe perché i dati vengono replicati su altri server.
- Cluster di cache con riparazione automatica dinamica: NCache fornisce il 100% di uptime attraverso questo. Inoltre, puoi aggiungere o rimuovere server cache in fase di esecuzione senza interrompere la cache o l'applicazione.
Conclusione
Bene, se hai un'applicazione ASP.NET in esecuzione su una web farm, dai un'occhiata a NCache e scopri come contribuirà a migliorare le prestazioni e la scalabilità della tua applicazione.
Puoi sempre inviarci un'e-mail all'indirizzo sales@alachisoft.com
Lo apprezzo per l'eccellente recensione. Comunque, come potremmo comunicare?
Ho usato NCache durante uno dei miei progetti i risultati sono stati davvero impressionanti. altamente raccomandato !!!