2010-11-10 18 views
7

Tenemos una aplicación web que almacena todos los datos del sitio en HttpRuntime.Cache.¿Es posible compartir HttpRuntime.Cache entre varios servidores web?

Ahora tenemos que implementar la aplicación en 2 servidores web con equilibrio de carga.

En este caso, cada servidor web tendrá su propia memoria caché, lo que no es ideal porque si un usuario solicita datos de webserver1 se almacenará en caché, pero la siguiente solicitud podría ir a webserver2 y los datos que su anterior solicitud en caché no estará disponible.

¿Es posible utilizar un proveedor de caché compartida para compartir el HttpRuntime.Cache entre los dos servidores web o para replicar la caché entre ellos, de modo que la misma memoria caché esté disponible en ambos servidores web? Si es así, ¿qué puedo hacer para resolver este problema?

Respuesta

6

No, no puede compartir el caché ASP.NET incorporado, pero podría usar algo como memcached o AppFabric en su lugar.

0

No vayas allí. Normalmente, el caché es un objeto estático, solo vive en el dominio de la aplicación. La actualización manual de estos es un mundo de dolor y desaconseja firmemente.

Puede utilizar una serie de soluciones de almacenamiento en caché que se encuentran frente a su servidor para ese tipo de propósito.

0

Suena por su pregunta que usted tiene datos de usuario es el caché? En ese caso, estaría con Aliostad y diría que no vayas allí.

HttpRuntime caché se debe utilizar para los elementos estáticos sino que se utiliza con regularidad que provienen de la base de datos, el principal objetivo debe ser prevenir accesos de bases de datos que se hubieran producido en cada petición independientemente del usuario ... así que cosas como opciones en una configuración de cuadro combinado o configuración certian

Si realmente necesita el almacenamiento en caché para datos de usuario, entonces como arriba Memcached, AppFabric o NVelocity

Hay capas de almacenamiento en caché adecuado para diferentes necesidades, que tienen sólo 2 servidores web sugiere que todavía no te requieren los marcos de almacenamiento en caché distribuidos más arriba.

¿Cuál es la carga del servidor y cuál es el factor limitante, CPU, RAM, Bandwith de red? En su base de datos o sus servidores web? Cada uno de estos indica una estrategia de almacenamiento en caché diferente.

Cuestiones relacionadas