node.js有哪些优缺点?
优点:
1.高并发(最重要的优点)
2.适合I/O密集型应用。
缺点:
1.不适合cpu密集型应用,由于JavaScript单线程的原因,如果长时间运行的计算(比如大循环)
将会导致cpu时间不能释放,使得后续I/O无法发起。
2.只支持单核cpu,不能充分利用cpu。
3.可靠性低,一旦代码某个环节崩溃,整个系统都崩溃。原因:单线程,单进程。
解决方案:
(1)nginx反向代理,负载均衡,开多个进程,绑定多个端口。
(2)开多个进程监听同一个端口,适合用cluster。
4.开源组件质量参差不齐,更新快,向下不兼容。
5.Debug不兼容,错误没有stack trace。