Estensione della cache di dati ASP.NET da condividere nella Web farm
-
10-07-2019 - |
Domanda
Ho un'applicazione ASP.NET che fa ampio uso dell'API della cache ASP.NET per la memorizzazione nella cache dei dati di uso comune. Inoltre, sto usando la dipendenza della cache sql basata sul polling per tenere traccia della scadenza.
Lo svantaggio del progetto attuale è che, nell'ambiente della Web farm, ogni server Web ha la propria cache di dati che non è condivisa tra i server.
Esiste un modo per migrare semplicemente il codice per condividere la cache di dati su più server?
Ho pensato di usare memcached, tuttavia, che non funzionerebbe con la dipendenza dalla cache sql, giusto?
Altre soluzioni?
Soluzione
Hai guardato AppFabric di Windows Server (precedentemente Velocity).
Altri suggerimenti
Puoi utilizzare le seguenti opzioni -
-
Utilizza l'approccio descritto qui per sincronizzare i dati tra web farm: http://www.eggheadcafe.com/articles/20030420.asp
-
Usa l'approccio di cache distribuito
-
Usa cache della libreria aziendale.
Mi sembra che Windows Server AppFabric è esattamente ciò che stanno cercando. (AKA "Velocità"). Dalla documentazione introduttiva :
AppFabric di Windows Server fornisce a applicazione distribuita in memoria piattaforma cache per lo sviluppo scalabile, disponibile e applicazioni ad alte prestazioni. AppFabric fonde la memoria tra più computer per dare un unico unificato visualizzazione cache per le applicazioni. Le applicazioni possono archiviare qualsiasi oggetto CLR serializzabile senza preoccuparsi di dove arriva l'oggetto immagazzinato. La scalabilità può essere raggiunta da semplicemente aggiungendo più computer su richiesta. La cache consente anche copie dei dati da archiviare in cluster, proteggendo così i dati da fallimenti. Funziona come un servizio accessibile tramite la rete. Nel Inoltre, AppFabric di Windows Server fornisce una perfetta integrazione con ASP.NET che abilita la sessione ASP.NET oggetti da archiviare in cache distribuita senza dovere scrivere su database. Questo aumenta sia le prestazioni che la scalabilità di applicazioni ASP.NET.