优点:
**1.高并发**
**2.适合I/O密集型使用**
缺点:
1.不适合CPU密集型应用;
CPU密集型应用给Node带来的挑战主要是:由于Java单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使后续的I/O无法发起;
解决方案:
将大型计算任务分解为多个小任务,使运算能够适时释放,不能阻塞I/O调用的发起。
2.只支持单核CPU,不能充分利用CPU;
3.由于单线程、单进程的原因,可靠性低,一旦代码某个环节崩溃,整个系统都崩溃;
解决方案:
(1)Nginx反向代理,负载均衡,开多个进程,绑定多个端口;
(2)开多个进程监听同一个端口,使用cluster模块;
4.开源组件库质量参差不齐,更新快,向下不兼容;
5.Debug不方便,错误没有stack trace