我正在使用Node + Mongo + Express来创建REST API。在某些情况下,节点服务器崩溃,我必须重新启动它。我正在使用forever来做重新启动的事情。但是我无法找到在崩溃过程中丢失的进程的解决方案。
例如:我一次处理10个http请求,而我的节点服务器对于任何请求都会崩溃。在这种情况下,其他9个正在运行的请求将会丢失。
有没有什么后备机制来防止这种情况?
发布于 2015-10-17 14:47:36
我现在看到的最近的集群是NodeJS集群,我相信主服务器会处理他的一个子进程的崩溃并移动http请求,但是,如果这不起作用,那么让它与nginx和一些节点进程同时进行,它会处理这类事情。
希望能对你有所帮助。
发布于 2015-10-17 15:26:41
如果存在未处理的异常,服务器就会崩溃,因此您需要使用try catch在函数中添加错误处理。有几个发送到process对象的事件可以帮助您解决问题。你可以尝试监听uncaughtException,然后遵循这里提到的策略:http://blog.argteam.com/coding/hardening-node-js-for-production-part-3-zero-downtime-deployments-with-nginx/,只需替换'SIGTERM‘即可。
https://stackoverflow.com/questions/33183671
复制相似问题