Skip to content

Commit 670da81

Browse files
committed
修改文档
1 parent c7dcdfe commit 670da81

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

模块/cluster.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
## 模块概览
22

3-
node是单进程单线程作业的,这在一定程度上有利于降低编程复杂度。但是在多核的机器上,只开一个进程,无法充分发挥机器的性能
3+
node实例是单线程作业的,因此,在服务端编程中,通常会创建多个node实例来处理客户端的请求,以此降低CPU的负载。对这样多个服务端node实例,我们称之为cluster(集群)
44

5-
因此,nodejs引入了cluster这个模块,来提供多进程编程的能力。
5+
集群的有以下两种常见的实现方案,而cluster模块采用了第二种。
6+
7+
### 实现一:多个node实例监听多个端口
8+
9+
集群内的node实例,各自监听不同的端口,再由反向代理实现请求到多个端口的分发。
10+
11+
* 优点:实现简单,各实例相对独立,这对服务稳定性有好处。
12+
* 缺点:增加端口占用,进程之间通信也比较麻烦。
13+
14+
### 实现二:主进程向子进程转发请求
15+
16+
集群内,创建一个主进程,以及若干个子进程。由主进程监听客户端请求,并根据特定的策略,转发到集群内的子进程。
17+
18+
* 优点:通常只占用一个端口,通信相对简单,转发策略更灵活。
19+
* 缺点:实现相对复杂,对主进程的稳定性要求较高。
620

721
## 基础例子
822

0 commit comments

Comments
 (0)