Wenn Ihre ASP.NET-Anwendung nur wenige Benutzer hat, ist es Ihnen wahrscheinlich egal, wie schnell oder langsam sie ist, und wahrscheinlich liefert sie Ihnen trotzdem eine ziemlich gute Leistung. Wenn Sie Ihre ASP.NET-Anwendung jedoch stärker auslasten, ist die Wahrscheinlichkeit recht hoch, dass die ASP.NET-Leistung erheblich abnimmt. Bei ausreichender Belastung kann es sogar zum Stillstand kommen. Und ironischerweise passiert das alles genau dann, wenn Ihr Unternehmen mehr Aktivität verzeichnet, sodass die Auswirkungen noch größer sind.
ASP.NET ist heute für Anwendungen mit hohem Datenverkehr sehr beliebt geworden und es ist mittlerweile üblich, Webfarmen mit 10 bis 20 Servern mit Lastausgleich und in einigen Fällen sogar 50 bis 100 Serverfarmen zu sehen. In diesen Situationen ist die ASP.NET-Leistung ein noch heikleres Problem, das gelöst werden muss.
NCache Details NCache Docs ASP.NET-Caching-Dokumente
Die richtigen NCache als verteilter Cache
Der Hauptgrund dafür, dass die ASP.NET-Leistung mit zunehmender Auslastung abnimmt, ist Ihre Datenbank, die größere Lasten nicht so verarbeiten kann wie Ihre ASP.NET-Anwendungs-Webfarm. Dies liegt daran, dass Sie zwar weitere Server zur ASP.NET-Webfarm hinzufügen können, dies jedoch nicht mit Ihrer Datenbank tun können.
In solchen Situationen ist es also am besten, a zu verwenden verteilter Cache Gefällt mir NCache. NCache ist im Arbeitsspeicher und daher viel schneller als die Datenbank. Und, NCache baut einen Cluster von Cache-Servern auf und Sie können den Cluster genau wie die Webfarm linear vergrößern. Infolgedessen mit NCache, bleibt Ihre ASP.NET-Leistung auch bei extremer Transaktionslast großartig. Sie können verwenden NCache auf die folgenden zwei Arten:
ASP.NET-Sitzungszustandsspeicherung
Sie können Ihre ASP.NET-Anwendung so konfigurieren Speichern Sie den ASP.NET-Sitzungsstatus in NCache anstelle von InProc, State Server oder SQL Server. Bitte beachten Sie, dass hier keine Programmierung erforderlich ist. Sie ändern den web.config-Code nur wie folgt:
1 2 3 4 5 6 |
<sessionstate cookieless="false" regenerateexpiredsessionid="true" mode="Custom" customprovider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" exceptionsenabled="true" enablesessionlocking="true" emptysessionwhenlocked="false" sessionlockingretry="-1" sessionappid="NCacheTest" useinproc="false" enablelogs="false" cachename="myReplicatedCache" writeexceptionstoeventlog="false" asyncsession="false"> <providers> <sessionstate></sessionstate></providers></add></providers></sessionstate> |
ASP.NET-Anwendungsdatencache
Der andere Weg liegt bei Ihnen Anwendungsdaten zwischenspeichern in einem verteilten Cache wie NCache Wenn Ihre ASP.NET-Anwendung diese Daten das nächste Mal benötigt, findet sie sie im Cache. Hier ist ein kleines Codebeispiel zum Zwischenspeichern von Anwendungsdaten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using Alachisoft.NCache.Web.Caching; ... Cache cache = NCache.InitializeCache("myCache"); // Create a key to lookup in the cache // The key for will be like “Employees:PK:1000” string key = "Employee:EmployeeId:" + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; if (employee == null) { // item not found in the cache. load from db LoadEmployeeFromDb(employee); // Now, add it to the cache for future reference Cache.Insert(key, employee, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null ); } |
Je mehr Daten Sie zwischenspeichern, desto weniger müssen Sie auf die Datenbank zugreifen und desto schneller ist die Leistung Ihrer ASP.NET-Anwendung.