Extender la memoria caché de datos ASP.NET para compartirla en la granja de servidores web
-
10-07-2019 - |
Pregunta
Tengo una aplicación ASP.NET que hace un uso extensivo de la API de caché ASP.NET para almacenar en caché los datos de uso común. Además, estoy usando la dependencia de caché sql basada en encuestas para rastrear la caducidad.
El inconveniente del diseño actual es que, en el entorno de la granja de servidores web, cada servidor web tiene su propia caché de datos que no se comparte entre los servidores.
¿Hay alguna manera de que simplemente pueda migrar el código para compartir caché de datos en varios servidores?
Sin embargo, he pensado en usar memcached que no funcionaría con la dependencia de caché sql, ¿verdad?
¿Alguna otra solución?
Solución
¿Has mirado en Windows Server AppFabric (anteriormente Velocity)?
Otros consejos
Puede usar las siguientes opciones:
-
Utilice el enfoque descrito aquí para sincronizar los datos en granjas web: http://www.eggheadcafe.com/articles/20030420.asp
-
Utilice el enfoque de almacenamiento en caché distribuido
-
Usar el caché de la biblioteca empresarial.
Me parece que Windows Server AppFabric es exactamente lo que usted estan buscando. (AKA " Velocidad "). De la documentación introductoria :
Windows Server AppFabric proporciona un aplicación distribuida en memoria plataforma de caché para desarrollar escalable, disponible y Aplicaciones de alto rendimiento. AppFabric fusiona la memoria en múltiples computadoras para dar un solo unificado vista de caché para aplicaciones. Las aplicaciones pueden almacenar cualquier objeto CLR serializable sin preocupándose de dónde llega el objeto almacenado La escalabilidad se puede lograr mediante simplemente agregando más computadoras en demanda. El caché también permite copias de datos que se almacenarán en clúster, protegiendo así los datos contra fallas Se ejecuta como un servicio Accedido a través de la red. En Además, Windows Server AppFabric proporciona una integración perfecta con ASP.NET que habilita la sesión ASP.NET objetos para ser almacenados en el caché distribuida sin tener que escribir en bases de datos. Esto aumenta tanto el rendimiento como la escalabilidad de aplicaciones ASP.NET.