Nodejs其它知识点

 

一,Nodejs架构

 

Nodejs是一个构建在V8引擎(C++编写的)上的JavaScript运行环境。

 

Nodejs底层框架由三部分组成:

 

1,Nodejs标准库

 

这部分是JavaScript编写的,也是我们在使用过程中能调用的API,在源码中lib目录下可以看到。

 

2,Node bindings

 

可以理解为一个桥(像JSBridge那样),连接JS和C++,是JavaScript能直接调用C/C++的关键,Node通过这一层将JS传入V8。

 

3,底层库

 

  1. V8:这也是为什么nodejs是用JavaScript编写的原因,为了使用高效的V8引擎;
  2. Libuv:它为nodejs提供了跨平台、线程池、事件池、异步I/O等能力,Nodejs之所以高效的异步很大归功于Libuv的实现;
  3. http_parser、OpenSSL等:提供了包括http解析、SSL等其它功能

 

二,Nodejs执行机制

 

1,Nodejs是一个单线程,只有一个JS主线程,其它的异步操作还是由线程池完成,将所有的阻塞操作都交给了内部的线程池去实现,本身不进行I/O操作;

 

2,Nodejs之所以单线程高并发,就是因为libuv层的事件循环机制,和底层线程池的实现;

 

3,事件驱动 + 主循环

 

 

三,Nodejs优缺点及适用场景

 

优点:I/O密集型处理比较擅长(sql查询请求、文件流操作请求、http请求等)

 

缺点:不擅长CPU密集型操作(复杂的计算、图片的操作等)

 

适用场景:RESTful API,请求和响应只需要少量文本,没有大量逻辑处理

 

 

 

posted on 2020-09-02 17:27  言先生  阅读(135)  评论(0编辑  收藏  举报