Permítanme introducir esto diciendo que no soy administrador de sistemas, soy programador.
Recientemente, nuestros administradores de sistemas instalaron equilibradores de carga F5. Desde entonces, he notado que cada vez que una solicitud agota el tiempo de espera y termina arrojando un 500, el equilibrador de carga envía la misma solicitud a nuestro otro servidor. IIS envía la respuesta de tiempo de espera aunque el script todavía se está ejecutando. Incluso las solicitudes POST se duplican si un script se ejecuta durante más de 5 minutos. Esto me parece un problema potencial, especialmente con los sitios de comercio electrónico en los que está involucrada la facturación del cliente.
Esto es solo un problema con algunos de nuestros scripts de ejecución más larga (pero es un problema grave). Me han dicho que este es un comportamiento esperado, y tendremos que cambiar nuestro código para cumplir. Entonces mis preguntas son:
- ¿Es este comportamiento esperado?
- ¿Cuál es la ventaja de que el equilibrador de carga replica la solicitud después de un tiempo de espera que no sea que el usuario no tenga que actualizar?
- Con esta arquitectura, si se ejecuta un script que bloquea el servidor o acapara los recursos, terminará ejecutándose en ambos servidores. ¿Es eso realmente óptimo?
fuente
Respuestas:
Eche un vistazo a esta entrada sobre monitoreo pasivo de aplicaciones en Big-IP
Mis respuestas a sus preguntas, por decepcionantes que puedan ser, son
Quizás (depende de la configuración de monitoreo pasivo)
El usuario no ve un error.
"Acción en servicio inactivo" es una configuración configurable.
fuente
Si se produce un error 500, esto indica un problema en el servidor web. El F5 simplemente reenviará este error al cliente de conexión. No "reenviará" la solicitud por sí misma. La única forma en que esto podría suceder es si el cliente vuelve a intentar la solicitud. En ese punto, esta solicitud posiblemente podría equilibrar la carga a otro miembro del grupo, aunque no hay garantía y se basaría en la persistencia o el método de equilibrio de carga utilizado (round robin, menos conexiones, etc.).
En resumen, a menos que tenga un iRule realmente loco en su F5, este es un comportamiento causado por el script en sí.
(Nota: fui ingeniero de soporte de Nework para F5 durante un año y medio trabajando con el LTM)
fuente