专业的编程技术博客社区

网站首页 > 博客文章 正文

pm2的实现(pm2原理)

baijin 2024-08-22 09:17:39 博客文章 5 ℃ 0 评论

我们写nodejs程序,基本都会用到pm2,来启动,因为它可以帮助我们很好的守护程序,保证程序不退出。

今天我们就来研究下pm2守护进程的原理。

node Cluster

要想了解pm2守护进程原理,先了解下nodejs的Cluster。

js是单线程的,在nodejs中采用的是多进程单线程的模型。由于单线程的限制。在多核服务器上,我们往往需要启动多个进程才能最大化服务器性能。

一般通过一个主进程master管理多个子进程(worker)的方式实现集群。

pm2的实现

pm2是基于cluster模块进行了封装。它能自动监控进程状态、重启进程、停止不稳定进程、日志存储利用等功能。

pm2可以在不修改代码等情况下做到负载均衡。

这个是pm2的业务架构图。

启动satan.js提供程序的退出、杀死方法。God.js负责维持进程的正常运行。

God进程启动后一直运行,相当于cluster中的master进行,维持worker进程的正常进行。

RPC指的是远程过程调用协议。在pm2中用于同一机器上的不同进程之间的方法调用。

守护进程

在上面图中有个叫Daemon wrapper的模块。

Daemon wrapper(守护进程包装器)它是一种用于将普通程序转换为守护进程的工具。

它可以将一个普通的程序包装成一个守护进程,使其在后台运行,并且可以在系统启动时自动启动。

Daemon wrapper通常会处理一些守护进程需要的细节,例如进程的启动、停止、重启、日志记录、进程间通信等。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表