node特点:
单线程、异步式I/O、事件驱动机制、跨平台。
Node.js适合用来开发什么样项目(应用程序)?
善于I/O,不善于计算。因为Node.js最擅长的就是任务调度,如果你的业务有很多的 CPU 计算,实际上也相当于这个计算阻塞了这个单线程,就不太适合Node开发,但是也不是没有解决方案,只是说不太适合。
当应用程序需要处理大量并发的I/O,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,Node.js非常适合。Node.js也非常适合与websocket配合,开发长连接的实时交互应用程序。
具体场景可以表现为如下:
1、用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序;
2、基于web、canvas等多人联网游戏;
3、基于web的多人实时聊天客户端、聊天室、图文直播;
4、单页面浏览器应用程序;
5、操作数据库、为前端和移动端提供基于json的API。
Node的优缺点
优点:
1、高并发(最重要的优点)
2、适合I/O密集型应用
缺点:
1、 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;
解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;
2、 只支持单核CPU,不能充分利用CPU
3、可靠性低,一旦代码某个环节崩溃,整个系统都崩溃
原因:单进程,单线程
解决方案:
(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
(2)开多个进程监听同一个端口,使用cluster模块;
4、 开源组件库质量参差不齐,更新快,向下不兼容
5、 Debug不方便,错误没有stack trace
以上就是node适合开发什么项目?的详细内容,更多请关注易知道|edz.cc其它相关文章!