深入浅出Nodejs 1 简介

nodejs.png libuv.png

1. Node 的特点

异步 I/O

node 中绝大多数的操作都是异步方式调用.

事件与回调函数

异步编程详解

单线程

单线程弱点:

无法利用多核 CPU; 现在微服务时代, 本身不是问题.

错误会导致整个应用退出; 代码级别增强健壮性, 守护进程.

大量计算占用 CPU 导致无法继续调用异步 I/O; CPU 密集计算方式不适合单线程模型, 需要采用多线程模型(apche,php), Node 也有缓解方案.比如采用 Master-Work(pm2)管理子进程方式, 转换为类多进程模型.

跨平台

Node 基于 libuv 实现跨平台.

2. Node 的应用场景

I/O 密集型

主要得益于 Node 利用事件循环的处理能力

不擅长 CPU 密集型业务

确实不擅长, 但是V8引擎的执行效率已经是比较高的了, 还有其他方式高效的利用CPU;

通过C/C++扩展方式, 弥补V8引擎对应性能差的模块

实现Master-Work进程管理, 充分利用多核CPU

###应用场景

前后端编程语言统一

高性能I/O实时应用: socket.io

并行I/O, 高效利用分布式环境: NodeFox, ql.io

并发I/O, 接口开发

游戏领域, 实时和并发能力: 网易开源pomelo框架

工具应用: 前端/运维/自动化工具

版本控制

Version Action Time
1.0 Init 2019-08-17