Proveedor de estado de sesión de ASP.NET para NCache en granjas web

Para implementaciones locales, ASP.NET Session State proporciona tres opciones de almacenamiento integradas (InProc, StateServer y SqlServer) y una cuarta opción "Personalizada". Las dos primeras opciones integradas (InProc y StateServer) tienen problemas de escalabilidad, mientras que la opción SqlServer tiene problemas tanto de rendimiento como de escalabilidad.

Una estrategia mucho mejor es usar la opción "Personalizada" y el complemento NCache como su proveedor de estado de sesión de ASP.NET. NCache es un caché distribuido de código abierto extremadamente rápido y escalable para .NET. Maneja la carga extrema de transacciones al permitirle agregar más servidores de caché en tiempo de ejecución y escalar linealmente. NCache también proporciona replicación de caché inteligente para que no pierda ningún estado de sesión de ASP.NET si un servidor web o un servidor de caché deja de funcionar.

Doc: Proveedor de estado de sesión de ASP.NET para NCache

Proveedor de estado de sesión de ASP.NET para NCache

Beneficios de NCache Proveedor de estado de sesión de ASP.NET

En primer lugar, no se requiere programación para usar NCache como su proveedor de estado de sesión de ASP.NET. Simplemente modifica su web.config y especifica NCache como su proveedor de estado de sesión (SSP). Ver detalles en Configuración del proveedor de estado de sesión de ASP.NET para NCache. Los siguientes son algunos de los beneficios de usar NCache como su proveedor de estado de sesión de ASP.NET:

  1. Alta disponibilidad: NCache tiene un Arquitectura de agrupación en clústeres de igual a igual con recuperación automática sin un solo punto de falla. Esto proporciona un tiempo de actividad del 100 % para su almacenamiento de estado de sesión ASP.NET que es muy importante para las aplicaciones críticas para el negocio.

  2. Escalabilidad lineal: NCache le permite escala tu clúster de caché linealmente agregando más servidores de caché al clúster. Esto aumenta su capacidad de transacción y también su capacidad de almacenamiento. Esto significa que el almacenamiento de estado de sesión ASP.NET nunca se convierte en un cuello de botella para su aplicación bajo cargas de transacciones pesadas.

  3. Replicación inteligente de sesiones: NCache proporciona topologías ricas de almacenamiento en caché (caché reflejada, caché replicada y caché de réplica de partición) con replicación inteligente de sesiones que no compromete el rendimiento y la escalabilidad. Esto garantiza que no pierda ningún dato de la sesión cuando un servidor web o un servidor de caché deja de funcionar.

  4. Serialización compacta rápida: NCache proporciona una Serialización compacta rápida que es más rápido que la serialización .NET normal y no requiere programación para su uso. Simplemente registre sus clases .NET con él y NCache genera código fuente de serialización, lo compila en la memoria en tiempo de ejecución cuando su aplicación se conecta a la memoria caché y luego usa este código compilado para todas las serializaciones posteriores.

Soporte para Múltiples Regiones (Centros de Datos)

NCache proporciona dos formas de administrar el estado de sesión de ASP.NET para aplicaciones que se ejecutan en varias regiones (centros de datos) y aún así mantener la coherencia de la sesión entre ellas. Ellos son:

  1. Replicación WAN del estado de sesión de ASP.NET: NCache proporciona una Topología de puente para permitirle replicar todo su almacén de estado de sesión de ASP.NET (la memoria caché distribuida) en otra región (centro de datos) a través de la WAN. Esto garantiza que sus sesiones siempre existan en varias regiones (centros de datos). Puede usar esto en los modos activo-pasivo (para recuperación ante desastres) o activo-activo. En activo-activo, incluso puede equilibrar la carga del tráfico entre varias regiones (centros de datos). Todo esto se hace a través de cambios de configuración.

  2. Estado de sesión de ASP.NET de múltiples regiones: Si no desea replicar el estado de sesión de ASP.NET en la WAN debido al costo de consumo de ancho de banda, puede optar por utilizar este Estado de sesión ASP.NET multisitio característica de NCache. En esto, el estado de sesión de ASP.NET no se replica en los sitios y, en cambio, se mantiene en la ubicación de su creación. Pero, si mueve cualquier tráfico de una región (centro de datos) a otra, el estado de sesión de ASP.NET se mueve con él.

    Esto le permite tener dos o más regiones activas (centros de datos), mantener la mayor parte del tráfico en su propio centro de datos, pero ocasionalmente desbordarse al otro centro de datos si lo desea. Y también puede cerrar un centro de datos sin causar ninguna interrupción para los usuarios porque otros centros de datos podrán acceder a sus sesiones.

Funciones avanzadas en NCache Proveedor de estado de sesión de ASP.NET

NCache El proveedor de estado de sesión de ASP.NET implementa todas las características estándar del proveedor de estado de sesión de ASP.NET. Además, proporciona varias funciones avanzadas que le permiten manejar situaciones complejas en sus aplicaciones.

  1. Comparta sesiones entre dominios de aplicaciones: Si está utilizando varios dominios de aplicaciones y para cada dominio de aplicaciones tiene un archivo web.config independiente, especifique el mismo valor en sessionAppId=>"NCacheApp1" y da como resultado que se comparta la sesión entre esos dominios de aplicaciones. Si utiliza un Id. de aplicación de sesión diferente, las sesiones no se comparten entre los dominios de la aplicación.

  2. Registro de errores: Puede habilitar el registro de errores en un archivo de registro en su servidor web (en INSTALL_DIR\NCache\log-files\SessionStoreProvider carpeta) especificando enableLogs = "true" . También puede habilitar el registro de errores en el registro de eventos de Windows especificando writeExceptionsToEventLog = "true" .

  3. Bloqueo de sesión estándar: El comportamiento estándar de bloqueo de sesión de ASP.NET es que si una sesión está bloqueada, otra solicitud espera 90 segundos (configurable) y al final desbloquea la sesión a la fuerza. Puede especificar esta opción de la siguiente manera:

     enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false" 

  4. Bloqueo de sesión mejorado: Si tiene una aplicación ASP.NET de alto tráfico donde los robots pueden extraer datos y usar la misma identificación de sesión para cientos o miles de solicitudes simultáneamente, no puede permitirse la opción de bloqueo de sesión estándar porque esperar 90 segundos podría bloquear todos sus sockets disponibles. En su lugar, desea devolver la solicitud rápidamente para indicar un error. Puede especificar esto de la siguiente manera:

     enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false" 

    Esto hace 5 reintentos a intervalos de medio segundo y luego devuelve una sesión vacía para indicar una falla. Incluso lanzar una excepción aquí es costoso. Es por eso que se implementa una sesión vacía. Este comportamiento se implementó originalmente en una solicitud del sitio web de una aerolínea de alto tráfico.

¿Qué hacer a continuación?

NCache Detalles
Descargar NCache
Solicitar demostración personalizada

Suscríbase al boletín mensual por correo electrónico para obtener las últimas actualizaciones.

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.