1、node.js能达到高并发
java编写的web程序,当用户访问程序时候,开启一个新的线程,一个线程大约占2m,8g的内存,理论上可以连接4000用户,但是nodejs不是为每个用户创建一个线程,而是为每个用户触发一个在nodejs内部的一个处理事件,这样nodejs可以连接数万用户了。因此要开发高并发连接的web项目,我们要用nodejs了。
2.node.js实现高性能
nodejs在服务器端运行的是高性能v8JavaScript脚本,v8JavaScript脚本是被v8JavaScript引擎解析并执行的脚本语言,v8JavaScript引擎是google开发的高性能JavaScript引擎。
正因为v8JavaScript引擎的崛起,才使得nodejs在性能方面有显著的优势。
3.非阻塞式IO和事件环机制
nodejs是单线程的。
非阻塞式I/O:在传统的单线程查询数据库之后,返回数据之前,这段时间是等待数据返回的,大大的影响了性能,nodejs提供了非阻塞式I/O,也就是说在执行查询数据库之后,不会等待数据返回结果,直接执行后面的代码。这样节省了等待数据返回的这个时间,提升了性能。但是我们怎么接受返回的数据呢?答案就是回调函数,当执行查询数据库同时,我们不等待数据返回,此时往回调函数队列加一个反回查询数据的回调函数。当数据返回时候,在执行这个回调函数。
事件环机制:nodejs同一个时刻只能执行一个回调函数,但是在执行这个回调函数时候可以转而去执行其他事件(包括触发新的事件,声明回调函数等),然后在继续执行原事件的回调函数
4.node.js适合开发什么样的应用
连接用户多,没有复杂的业务逻辑的应用。大量的I/O,如apache、tomcat均采用阻塞式io,当数据存储数据库时候会等待很长时间。