Técnicas de gestión de estado
Las técnicas de escalado de varias máquinas se basan en el uso de varias copias de un servidor de aplicaciones. De esta forma, varias solicitudes consecutivas de varios clientes pueden recibir servicio de distintos servidores. Si cada solicitud de cliente es completamente independiente de las otras solicitudes de cliente, no importa si se procesan varias solicitudes consecutivas en el mismo servidor. No obstante, en la práctica, las solicitudes de cliente no son independientes. A menudo, un cliente realiza una solicitud, espera el resultado, y hace una o más solicitudes que dependen de los resultados recibidos de la primera.
Esta secuencia de operaciones en nombre de un cliente se divide en dos categorías:
- Sin estado
- Un servidor procesa las solicitudes basándose sólo en la información proporcionada con cada solicitud, nunca en la información de solicitudes anteriores. El servidor no necesita mantener información de estado entre solicitudes.
- Con estado
- Un servidor procesa las solicitudes basándose en la información proporcionada con cada solicitud y en la información almacenada de solicitudes anteriores. El servidor necesita poder acceder y mantener la información de estado generada durante el proceso de una solicitud anterior.
Para las interacciones sin estado, no importa si distintos servidores procesan distintas solicitudes. No obstante, para las interacciones con estado, el servidor que procesa una solicitud tiene que tener acceso a la información de estado necesaria para dar servicio a esa solicitud. O bien el mismo servidor procesa todas las solicitudes asociadas con la misma información de estado, o bien la información de estado se comparte entre todos los servidores que la necesitan. En el segundo caso, el acceso a la información de estado compartida desde el mismo servidor minimiza la carga adicional de proceso asociada con el acceso a la información de estado compartida desde varios servidores.
Los recursos de distribución de cargas en el producto utilizan varias técnicas diferentes para mantener la información de estado entre solicitudes de cliente:
- La afinidad de sesiones, donde el recurso de distribución de cargas reconoce la existencia de una sesión de cliente e intenta direccionar todas las solicitudes dentro de esa sesión al mismo servidor.
- La afinidad de transacciones, donde el recurso de distribución de cargas reconoce la existencia de una transacción e intenta direccionar todas las solicitudes dentro del ámbito de esa transacción al mismo servidor.
- La afinidad de servidores, donde el recurso de distribución de cargas reconoce que aunque varios servidores pueden ser aceptables para una solicitud de cliente determinada, un servidor específico es el más adecuado para procesar esa solicitud.
El gestor de sesiones, que forma parte de cada servidor de aplicaciones, almacena información de sesiones de cliente, y tiene en cuenta la afinidad de sesiones y la afinidad de servidores cuando direcciona solicitudes de cliente a los miembros de clúster de un servidor de aplicaciones. El servicio de gestión de cargas de trabajo tiene en cuenta la afinidad de servidores y transacciones cuando dirige solicitudes de cliente entre los miembros de clúster de un servidor de aplicaciones.