Ist es möglich, zu teilen HttpRuntime.Cache zwischen mehreren web-Servern?
Haben wir eine web-Anwendung, die die Speicherung der Website-Daten in HttpRuntime.Cache
.
Nun müssen wir zur Bereitstellung der Anwendung über 2 load-balanced web-Server.
Wenn dies der Fall ist, jeder web-server hat seinen eigenen cache, das ist nicht ideal, weil, wenn ein Benutzer Daten aus webserver1 es wird zwischengespeichert werden, aber es gibt neben Anfrage an webserver2, und die Daten, die Ihre vorherigen Anfrage zwischengespeichert wird nicht verfügbar sein.
Ist es möglich, eine shared-cache-provider zu teilen HttpRuntime.Cache
zwischen zwei web-Servern oder zu replizieren cache zwischen, so dass Sie den gleichen cache wird sowohl auf web-Servern? Wenn ja, was kann ich tun, um dieses problem zu lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, können Sie nicht teilen, die gebaut-in ASP.NET cache, aber man könnte so etwas wie memcached oder AppFabric statt.
NÖ, ist es nicht möglich. Sie verwenden so genannte ditributed cache wie Microsoft AppFabric-Zwischenspeicherung oder sehr popupar open-source-Produkt memcached.
Es klingt aus deiner Frage, dass du hast Benutzer-Daten, die es den cache? In diesem Fall würde ich mit Aliostad und sagen, dont go there!
HttpRuntime-cache sollte verwendet werden für statische, aber regelmäßig verwendet Elemente, die aus der Datenbank kommen, ist der Hauptzweck soll die Verhinderung von Datenbank-hits, die andernfalls auftreten würde, auf jede Anfrage unabhängig von Benutzer... so Dinge wie Optionen in einer combobox oder bestimmter Konfigurationseinstellungen
Wenn Sie wirklich brauchen, caching für Benutzer-Daten, dann wie oben Memcached, Appfabric oder nvelocity
Gibt es Cache-Ebenen, geeignet für unterschiedliche Bedürfnisse, mit nur 2 Webserver deutet darauf hin, dass Sie nicht noch verlangen das Verteilte-caching-frameworks vor.
Was ist die server-Last, und was ist der limitierende Faktor, die CPU, RAM, Netzwerk-Bandbreite? Auf Ihrer DB oder der Webserver? Jede von diesen zeigt eine unterschiedliche caching-Strategie.
Nicht dorthin gehen. Normalerweise cache ein statisches Objekt, Leben nur in der Anwendungsdomäne. Manuell aktualisieren diese Welt ist eine Welt der Schmerzen und stark abraten.
Können Sie eine Reihe von caching-Lösungen, die sitzen vor Ihrem server für diese Art von Zweck.