Beheben Sie ASP.NET-Cachebeschränkungen in Webfarmen mit NCache

Microsoft stellt ein ASP.NET Cache-Objekt innerhalb des Anwendungsbereichs von ASP.NET bereit, mit dem Sie Anwendungsdaten zwischenspeichern und diese teuren Datenbankfahrten reduzieren können Verbessern Sie Ihre ASP.NET-Leistung. So wird ASP.NET Cache normalerweise verwendet.

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 );
}

ASP.NET-Cachebeschränkungen in Webfarmen

ASP.NET Cache ist ein eigenständiger In-Process-Cache (InProc) und weist daher viele Einschränkungen auf, wenn Ihre Anwendung in einer Webfarm mit Lastenausgleich bereitgestellt wird. Diese Einschränkungen sind:

  • Mehrere Cache-Kopien nicht synchronisiert: Mehrere Kopien Ihres Caches in Webgärten oder Webfarmen werden nicht miteinander synchronisiert, da ASP.NET Cache eigenständig ist. Und dies stellt ein großes Problem der Datenintegrität für Ihre Anwendung dar.
  • Cache verloren, wenn Arbeitsprozess wiederverwendet wird: Alle ASP.NET-Cachedaten gehen verloren, wenn der Arbeitsprozess wiederverwendet wird. Und dies verursacht ein Leistungsproblem, da Sie den gesamten Cache erneut aus der Datenbank laden müssen.
  • Das Problem mit der Cache-Größe ist begrenzt: Der ASP.NET-Cache muss innerhalb der Arbeitsspeichergrenze des ASP.NET-Worker-Prozesses liegen, was die Größe Ihres Cache stark einschränkt.
  • Cache-Synchronisierung über DB hat Probleme: Mit SQL CacheDependency in ASP.NET Cache können Sie den Cache mit der Datenbank synchronisieren. Und einige Leute verwenden es, um mehrere Cache-Kopien auf verschiedenen Webservern miteinander zu synchronisieren, indem sie die Datenbank durchlaufen. Dies hat jedoch große Leistungs- und Skalierbarkeitsprobleme, da die Datenbank wieder im Mittelpunkt aller Aktivitäten steht und SQL CacheDependency selbst nicht sehr skalierbar ist.

Verteilter Cache (NCache): Lösung für Webfarmen

NCache ist ein verteilter Cache und löst alle oben genannten Einschränkungen von ASP.NET Cache. Hier ist, wie NCache behebt diese Einschränkungen:

  • In der Webfarm synchronisierter Cache: NCache ist eine verteilter Cache und synchronisiert den Cache über mehrere Server in einer Webfarm. Dies bedeutet, dass es keine Probleme mit der Datenintegrität gibt NCache.
  • Cache OutProc im Webgarten: NCache ist ein prozessexterner Cache, sodass sich mehrere Arbeitsprozesse einen gemeinsamen Cache teilen können.
  • Cachegröße sehr skalierbar: NCache beschränkt nicht nur jeden ASP.NET-Arbeitsprozesstyp der Speichergröße, sondern ermöglicht es Ihnen auch weitere Cache-Server hinzufügen um die Speicherkapazität zu erweitern. Sie können also problemlos 100 GB oder mehr Cache-Größe haben.
  • Cache-Skalierungen für hohe Transaktionen in Webfarmen: NCache ist ein verteilter Cache und bietet skalierbare Caching-Topologien. Dies erlaubt NCache den Cache-Cluster problemlos zu skalieren.
  • Der Cache ist bei der Datenreplikation sehr zuverlässig: NCache bietet Intelligente Datenreplikation ohne auf Leistung verzichten zu müssen. Diese Datenreplikation stellt sicher, dass selbst beim Ausfall eines Cache-Servers keine Daten verloren gehen. Dadurch kann Ihre ASP.NET-Anwendung Daten zwischenspeichern, ohne sich Gedanken über Datenverlust machen zu müssen.

NCache hat ASP.NET Cache API plus mehr

NCache bietet alle ASP.NET Cache-Features mit einer identischen API plus. Dies ermöglicht Ihnen Migration von ASP.NET-Cache zu NCache einwandfrei. Sie ändern nur den Namensraum ab System.Web.Caching zu Alachisoft.NCache.Web.Caching und stellen Sie sicher, dass alle zwischengespeicherten Objekte serialisierbar sind.

Zusätzlich NCache bietet zahlreiche Caching-Features, die ASP.NET Cache nicht hat. Hier ist eine unvollständige Liste:

Lesen Sie mehr über alle NCache Funktionen.

So verwenden Sie schnell NCache?

Hier sind einige einfache Schritte, die Sie unternehmen können, um schnell davon zu profitieren:

  1. Installieren NCache: auf Ihren Webservern und zwei Cache-Servern
  2. Erstellen Sie einen Cache: über eine GUI basiert NCache Manager-Tool
  3. Anwendungsdaten zwischenspeichern NCache: Sie müssen referenzieren NCache zusammenbauen und dann machen NCache API-Aufrufe zum Speichern und Abrufen Ihrer .NET-Objekte aus dem Cache
  4. Überwachen Sie die ASP.NET-Leistung: Sie können jetzt die Leistung von ASP.NET überwachen und auch NCache Leistung. NCache bietet einen umfangreichen Satz von PerfMon-Leistungsindikatoren, mit denen Sie überwachen können

Was macht man als nächstes?

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.