Erweitern von ASP.NET-Datencache über Web-Farm gemeinsam genutzt werden
-
10-07-2019 - |
Frage
Ich habe eine ASP.NET-Anwendung, die für das Caching häufig verwendete Daten der extensiven Einsatz von ASP.NET-Cache API macht. Darüber hinaus bin ich mit Polling-basierten SQL-Cache Abhängigkeit Ablauf zu verfolgen.
Der Nachteil des aktuellen Designs ist, dass in der Webfarmumgebung, jeder Web-Server seinen eigenen Daten-Cache, die nicht über mehrere Server gemeinsam genutzt wird.
Gibt es eine Möglichkeit, ich kann einfach den Code migrieren, um Daten-Cache auf mehrere Server zu teilen?
Ich habe daran gedacht, mit Memcached jedoch, dass nicht mit SQL-Cache-Abhängigkeit funktionieren würde, nicht wahr?
Alle anderen Lösungen?
Lösung
Haben Sie bei Windows Server AppFabric sehen (ehemals Geschwindigkeit).
Andere Tipps
Sie nutzen könnten folgende Optionen -
-
Mit dem hier beschriebenen Ansatz, um die Daten über Web-Farmen zu synchronisieren - http://www.eggheadcafe.com/articles/20030420.asp
-
Verwenden Sie verteilte Caching-Ansatz
-
Verwenden Sie Enterprise Library-Cache.
Es scheint mir, dass Windows Server AppFabric ist genau das, was Sie sind auf der Suche nach. (AKA "Velocity"). Aus dem einführende Dokumentation :
Windows Server AppFabric bietet eine in-memory verteilten Anwendung Cache-Plattform für die Entwicklung skalierbaren, verfügbaren und Hochleistungsanwendungen. AppFabric Sicherungen Speicher über mehrere Computer über eine einzige, einheitliche zu geben Cache im Hinblick auf Anwendungen. Anwendungen speichern kann jeder serializable CLR-Objekt ohne sich Gedanken darüber, wo das Objekt bekommt gelagert. Skalierbarkeit kann erreicht werden durch Hinzufügen einfach mehr Computer auf Nachfrage. Der Cache ermöglicht auch Kopien der Daten über die gespeichert werden Cluster, damit Schutz gegen Daten Ausfälle. Es wird als Dienst über das Netzwerk zugegriffen wird. Im Außerdem Windows Server AppFabric bietet eine nahtlose Integration mit ASP.NET, die ASP.NET-Sitzung ermöglicht Objekte in die gespeichert werden verteilten Cache, ohne mit Schreiben Sie an Datenbanken. Dies erhöht sowohl die Leistung und Skalierbarkeit von ASP.NET-Anwendungen.