Soy nuevo en Node.js y actualmente estoy cuestionando su fiabilidad.Fiabilidad de Node.js para aplicaciones grandes
Según lo que he visto hasta ahora, parece haber un error importante: cualquier error/excepción no bloqueada bloquea el servidor. Claro, puede tratar de proteger su código a prueba de balas o ponerlo en áreas clave, pero casi siempre habrá errores que se escabullen. Y parece peligroso si una solicitud problemática podría afectar a todas las demás solicitudes. Hay 2 soluciones que he encontrado:
Usar servidor o módulo como forever para reiniciar automáticamente el servidor cuando se rompe. Lo que no me gusta de esto es que el servidor aún está inactivo por un segundo o dos (para un sitio grande, que podría ser cientos (¿miles?) De solicitud).
Captura excepciones no detectadas usando
process.on('uncaughtException')
. El problema con este enfoque (hasta donde yo sé) es que no hay forma de obtener una referencia a la solicitud que causa la excepción. Entonces esa solicitud particular se deja colgando (el usuario ve el indicador de carga hasta el tiempo de espera). Pero al menos en este caso, otras solicitudes no problemáticas aún pueden ser manejadas.
¿Puede un lanzamiento veterano de Node.js entrar?
No me gusta el poco acerca de "cientos de miles" de solicitudes perdidas en un sitio grande. Un sitio grande se escalará horizontalmente, por lo que un solo proceso solo afectará una pequeña fracción del tráfico total. – Kevin
posibles duplicados: http://stackoverflow.com/questions/7310521/node-js-best-practice-exception-handling http://stackoverflow.com/questions/9181027/node-js-doesnt-display-entire- error-message-on-uncaughtexception-is-it-possibl aunque parezco entender que las respuestas aceptadas no son satisfactorias? – Dirk
@Kevin que aún podría estar entre cientos o simplemente inaceptable –