PM2源码浅析

PM2工作原理

 

 

最近在玩一个游戏,《地平线:黎明时分》,最终Boss是一名叫黑底斯的人,所谓为人,也许不对,黑底斯是一段强大的毁灭进程,破坏了盖娅主进程,从而引发的整个大陆机械兽劣化故事。

为什么要讲这么一段呢,是希望大家可以更好地理解pm2的原理,要理解pm2就要理解god和santan的关系,god和santan的关系就相当于盖娅和黑底斯在pm2中的01世界中,每一行代码每一个字节都安静的工作god就是Daemon进程 守护进程,重启进程,守护node程序世界的安宁,santan就是进程的毁灭者,异常进程的退出,杀死进程,毁灭进程等工作,都是由这位大哥操手。

 

架构图如下:

 

god和santan通讯的方式,就是RPC

 

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

执行流程图如下:

 

 

PM2源码浅析

 

clinet启动关联daemon主进程

 

God的监听进程方法

god启动后,与satan建立rpc链接,调用prepare方法来完成集群启动

 

satan通知god

 

 

总结

pm2的集群,从原理是采用cluster.fork来实现的,深入理解cluser模块,精度pm2的源代码,能更好的理解pm2,更好的理解node设计思想

 

如果你喜欢我们的文章,关注我们的公众号和我们互动吧。

posted @ 2017-07-19 21:34  大转转FE  阅读(2263)  评论(0编辑  收藏  举报