ASP.NET ist mittlerweile zu einer sehr beliebten Technologie für Web-Apps geworden und immer mehr Menschen entwickeln Anwendungen mit hohem Datenverkehr darin. Um den höheren Datenverkehr zu bewältigen, werden diese ASP.NET-Apps in Webfarmen mit Lastausgleich bereitgestellt, in denen Sie bei steigender Datenverkehrslast weitere Server hinzufügen können.
Es tritt jedoch ein Problem auf. Die Datenbank und Ihr Datenspeicher können nicht auf die gleiche Weise skaliert werden, um die höhere Verkehrslast zu bewältigen. Es kommt also zu einem Engpass, bei dem Ihre ASP.NET-Anwendung langsamer wird und sogar zum Stillstand kommen kann. In solchen Situationen ist das Zwischenspeichern von Daten eine hervorragende Möglichkeit, diesen Datenbank- und Datenspeicherengpass zu beheben. Durch Caching können Sie Anwendungsdaten in der Nähe speichern und teure Datenbankfahrten reduzieren.
NCache Details NCache Docs ASP.NET-Caching
Was ist ASP.NET-Cache?
Der ASP.NET-Cache ermöglicht das Zwischenspeichern von Anwendungsdaten und ist ein ziemlich funktionsreicher Cache, der die folgenden Funktionen umfasst:
- Verfallsdatum: Automatisch absolut und gleitend Ablauf.
- Cache-Abhängigkeit: Zum Verwalten von Datenbeziehungen im Cache.
- SqlCacheDependency: Zum Synchronisieren des Caches mit der Datenbank.
- Rückrufe: Um benachrichtigt zu werden, wenn Elemente im Cache aktualisiert werden.
Hier ist ein Beispielcode, der die ASP.NET-Cache-Nutzung zeigt
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> ); } |
Cache-Abhängigkeit SQL-Abhängigkeit Datenablauf
ASP.NET-Cachebeschränkungen in Webfarmen
Trotz sehr nützlicher Caching-Funktionen weist ASP.NET Cache einige schwerwiegende Einschränkungen auf. Einige davon sind unten aufgeführt:
- Synchronisiert nicht über einen Server oder Arbeitsprozesse hinweg: NET Cache führt keine Synchronisierung über mehrere Server oder sogar mehrere Arbeitsprozesse hinweg durch. Sie können es also nicht in einer Webfarm oder sogar einem Webgarten verwenden, es sei denn, Ihre Daten sind schreibgeschützt, während Sie alle Arten von Daten zwischenspeichern müssen, auch solche, die sich relativ häufig ändern.
- Beschränkung der Cache-Größe: Sie können den ASP.NET-Cache nicht auf mehr erweitern, als ein ASP.NET-Arbeitsprozess enthalten kann. Bei 32-Bit-Systemen sind es 1 GB, einschließlich App-Code. Selbst bei 64-Bit-Systemen kann die Größe nicht skaliert werden.
Verwenden Sie den ASP.NET Cache-kompatiblen verteilten Cache
Wie man diese umgeht Einschränkungen des ASP.NET Cache ist die Verwendung eines verteilten Caches wie NCache für Webfarmen. NCache Bietet die gleichen Funktionen wie ASP.NET Cache und mehr. Aber als verteilter Cache NCache Lässt sich problemlos über mehrere Server hinweg synchronisieren. Hier sind einige Vorteile, die Sie erhalten NCache:
- Die Transaktionslast von Scale ist sehr gut: Sie können dem Cache-Cluster weitere Cache-Server hinzufügen, wenn Ihre Webfarm von 2 auf 200 Server wächst. NCache wird nie zu einem Engpass bei der Bewältigung von mehr Verkehr.
- Datenspeicherung schön skalieren: Je mehr Cache-Server Sie hinzufügen, desto größer wird Ihre Cache-Speicherkapazität Partitionscache-Topologie.
- Repliziert Daten für Zuverlässigkeit: Sie können sicherstellen, dass selbst bei einem Serverausfall kein Datenverlust auftritt, da Daten auf andere Server repliziert werden.
- Dynamischer selbstheilender Cache-Cluster: NCache sorgt dadurch für 100 % Betriebszeit. Und Sie können Cache-Server zur Laufzeit hinzufügen oder entfernen, ohne den Cache oder Ihre Anwendung anzuhalten.
Zusammenfassung
Wenn Sie eine ASP.NET-Anwendung auf einer Webfarm ausführen, werfen Sie einen Blick darauf NCache und sehen Sie, wie es dazu beiträgt, die Leistung und Skalierbarkeit Ihrer Anwendung zu verbessern.
Sie können uns jederzeit eine E-Mail an senden sales@alachisoft.com
Vielen Dank für die hervorragende Beschreibung. Wie könnten wir überhaupt kommunizieren?
Ich habe gebraucht NCache während eines meiner Projekte und die Ergebnisse waren sehr beeindruckend. sehr empfehlenswert !!!