tutorial pagina online net mvc mva microsoft español desarrollo crear con asp aplicacion asp.net-mvc caching memcached web-farm

pagina - Prepare una aplicación ASP.NET MVC Web Farm Ready



mva introduction to asp net mvc (1)

Contexto de solicitud
Cualquier solicitud que llegue a una granja de servidores web es atendida por un servidor IIS disponible. El contexto se crea allí y toda la solicitud es atendida por el mismo servidor. Así que el contexto no debería ser un problema. Una solicitud es una tubería de ejecución sin estado, por lo que no necesita compartir datos con otros servidores de ninguna forma. Será atendido desde el principio hasta el final por la misma máquina.
La información del usuario se lee desde una cookie y es procesada por el servidor que sirve la solicitud. Depende entonces si cacheas el objeto de usuario completo en algún lugar.

Sesión
Si usa el diccionario TempData , debe tener en cuenta que está almacenado dentro del diccionario de Session . En una granja de servidores, significa que debe usar otros medios que no sean las sesiones de InProc, ya que no se comparten entre los servidores IIS de la granja. Debe configurar otros administradores de sesión que utilicen una base de datos u otros (servidor de estado, etc.).

Cache
Cuando se trata de caché es una historia diferente. Para que sea lo más eficiente posible, la memoria caché también debe ser servida. Por defecto no lo es. Pero mirar en caché apenas significa que cuando no hay caché se debe leer y almacenar en caché. Entonces, si un servidor de granjas de servidores en particular no tiene algún objeto de caché, lo creará. Con el tiempo, todos ellos almacenarán en caché algunos datos compartidos de uso público.
O ... Podría usar bibliotecas como memcached (como lo mencionó) y aprovechar la caché compartida. Hay varios ejemplos en la red de cómo usarlo.

Sin embargo, todas estas soluciones conllevan una sobrecarga adicional de varias cosas (como el procesamiento de la red y el tercer proceso y la obtención de datos, etc.) por lo menos. Por lo tanto, la memoria caché predeterminada es la más rápida y si necesita explícitamente la memoria caché compartida, decida por una. No compartas caché a menos que sea realmente necesario.

¿Cuál será la forma más eficiente de hacer que una aplicación ASP.NET MVC sea compatible con la granja de servidores web?

Lo más importante es compartir la información del usuario actual (Contexto) y los objetos en caché (no tan importantes) como elementos de búsqueda (Estados, tipos de calles, condados, etc.)

He escuchado / leído sobre MemCache pero no he visto una forma simple y aplicable (documentación) sobre cómo implementarlo y probarlo.