一、高性能Web服务的几个要点
1. 事件驱动
2. 非阻塞I/O
二、nodeJs 为什么会选择javascript
1. 上手门槛低
2. 后端没有js,所以没有任何历史遗留问题,为其导入非阻塞的I/O没有额外阻力
3.JavaScript在浏览器中有广泛的事件驱动方面的应用
4.Chrome了浏览器的的JavaScript引擎V8性能
三、为什么叫nodejs
1.每一个node进程都构成这个网络应用的中的一个节点,是node的真谛
四、nodejs给js带来的意义
nodejs没有html,webkit,没有显卡,这是跟js不同之处,因此可以实现在服务端运行
五、nodejs的特点
1.异步I/O
var fs = require('fs');
fs.readFile('demo.txt', function (err, file) {
console.log('读取文件')
});
console.log('发起读取文件');
2.事件与回调函数
3.单线程
单线程的最大好ܪ是不用像多线程编程那样出处在意状态的同步问题,这里
没有死锁的存在,也没有线程上下问交换所带的性能上的开销
弱点:
1.无法利用多核CPU
2.错误会导致整个应用退出,应用的健壮性需要考虑
3.大量计算占用CPU导致无法继续调用异步I/O
六、nodejs的应用场景
1.单冲单线程的角度,处理I/O密集型的应用场景
2.CPU密集不可怕,如何合理调度才是诀窍