一 Nodejs架构:Nodejs异步理解
Node.js主要分为四大部分,Node Standard Library,Node Bindings,V8,Libuv。Node.js的结构图如下:
可以看出,Node.js的结构大致分为三个层次
-
Node Standard Library
是我们每天都在用的标准库,如 Http、Buffer、fs 模块。它们都是由 JavaScript 编写的,可以通过require(..)
直接能调用。 -
Node Bindings
是沟通 JS 和 C++ 的桥梁,封装 V8 和 Libuv 的细节,向上层提供基础API服务。这一层是支撑 Node.js 运行的关键,由 C/C++ 实现。
-
V8
是 Google 开发的 javascript 引擎,为 javascript 提供了在非浏览器端运行的环境,可以说它就是 Node.js 的发动机。它的高效是 Node.js 之所以高效的原因之一。 -
Libuv
为Node.js提供了跨平台,线程池,事件池,异步 I/O 等能力,是Node.js如此强大的关键。 -
C-ares
提供了异步处理 DNS 相关的能力。 -
http_parser、OpenSSL、zlib
等,提供包括 http 解析、SSL、数据压缩等其他的能力。