2010-08-20 8 views
5

Tengo una aplicación que funciona bien en un solo servidor. Mi cliente ahora quiere moverlo a un entorno con equilibrio de carga. ¿Qué cosas me pueden morder al hacer esto?Mover una aplicación Asp.net a un entorno con equilibrio de carga

Actualmente no conozco

  • estado de la sesión, y
  • clave de la máquina.

Ambos están descritos here, por ejemplo, así que estoy buscando cosas adicionales a esto.

similarquestions, pero el primero aborda el equilibrio de carga en general, y estoy buscando una guía de migración, y el segundo aborda un problema específico.

Respuesta

2

Una cosa que puede experimentar es una carga aumentada de en su servidor de base de datos. Si implementa cualquier caché de datos en el servidor, se utilizará para que su sitio acceda a la base de datos una vez para un determinado conjunto de datos, almacenando en caché los datos y luego no volviendo a la base de datos hasta que se agote el tiempo de caché. Esta es una buena estrategia para los datos accedidos comúnmente.

En un entorno de carga equilibrada, las solicitudes posteriores pueden ir a diferentes servidores y la base de datos recibirá dos veces los mismos datos. O más si tienes más de 2 servidores. Esto no es malo en sí mismo, pero sería bueno que lo vigile. Si la base de datos está en cola, los beneficios de ejecutar una webfarm podrían ser negados. Como siempre, pruebas de referencia, perfil y ejecución.

Una forma de evitar esto es tener sesiones adhesivas. Este es un enfoque basado en enrutador. una vez que se establece una sesión de usuario, todas las solicitudes de ese usuario se enrutan al mismo servidor. Esto tiene sus inconvenientes, sobre todo, una disminución potencial en la eficacia del equilibrio de carga, por no mencionar los problemas cuando se pierde un servidor. Además, solo ayudará cuando esté almacenando en caché principalmente datos específicos del usuario, como los resultados de búsqueda paginada, que solo se guardan en caché durante un breve período de tiempo.

Otra solución es tener una memoria distribuida, en memoria caché, como memcached, Velocity o NCache. También hay otros, pero estos son con los que he trabajado.

Otra cosa a tener en cuenta, que no está relacionada con lo anterior es: Cómo lidiar con las cargas de archivos de sus usuarios. Muchos sitios permiten que los usuarios carguen los archivos. Si dichos archivos no se han guardado previamente en una tienda central, como una base de datos o un recurso compartido común de archivos, deberán serlo.

0

Mire this article que describe algunos consejos sobre la preparación de la aplicación asp.net para el equilibrio de carga.

+1

enlace incorrecto. Es por eso que no debería dejar enlaces como respuesta – Phil

Cuestiones relacionadas