玩转进程

2021-03-02 18:08:01 浏览数 (2)

玩转进程

服务模型的变迁

石器时代:同步

服务模式是一次只为一个请求服务

青铜时代:复制进程

通过进程的复制同时服务更多的请求和用 户

白银时代:多线程

让一个线程服务一个请求,并且线程之间可以共享数据

黄金时代:事件驱动

为了解决高并发问题,基于事件驱动的服务模型出现了

多进程架构

理想状态下每个 进程各自利用一个CPU,以此实现多核CPU的利用

创建子进程

child_process模块给予Node可以随意创建子进程(child_process)的能力

进程间通信

主线程与工作线程之间通过onmessage()和postMessage()进行通信子进程对象则由send()方法实现主进程向子进程发送数据

句柄传递

一种可以用来标识资源的引用,它的内部包含了指向对象的文件描述 符

集群稳定之路

进程事件

message

error

exit

close

disconnect

自动重启

自杀信号

限量重启

负载均衡

操作系统的抢占式策略,闲着的进程对到来的请求进行争抢,谁抢到谁服务

状态共享

数据共享:第三方数据存储

主动通知

Cluster 模块

Cluster 工作原理

事实上cluster模块就是child_process和net模块的组合应用

Cluster 事件

fork

online

listening

disconnect

exit

setup

0 人点赞