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設計思想

 

如果你喜歡我們的文章,關注我們的公眾號和我們互動吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM