Editar en GitHub

Verificaciones de Salud y Apagado Elegante

Apagado elegante

Cuando despliegas una nueva versión de tu aplicación, debes reemplazar la versión anterior. El administrador de procesos que estés usando primero enviará una señal SIGTERM a la aplicación para notificarle que será terminada. Una vez que la aplicación recibe esta señal, debe dejar de aceptar nuevas solicitudes, finalizar todas las solicitudes en curso, limpiar los recursos que utilizó, incluyendo conexiones a base de datos y bloqueos de archivos, y luego salir.

Ejemplo

const server = app.listen(port);
process.on('SIGTERM', () => {
debug('SIGTERM signal received: closing HTTP server');
server.close(() => {
debug('HTTP server closed');
});
});

Verificaciones de salud

Un balanceador de carga usa verificaciones de salud para determinar si una instancia de la aplicación está sana y puede aceptar solicitudes. Por ejemplo, Kubernetes tiene dos verificaciones de salud:

  • liveness, que determina cuándo reiniciar un contenedor.
  • readiness, que determina cuándo un contenedor está listo para empezar a aceptar tráfico. Cuando un pod no está listo, se elimina de los balanceadores de carga del servicio.