PM2工作原理 最近在玩一個游戲,《地平線:黎明時分》,最終Boss是一名叫黑底斯的人,所謂為人,也許不對,黑底斯是一段強大的毀滅進程,破壞了蓋婭主進程,從而引發的整個大陸機械獸劣化故事。 為什麼要講這麼一段呢,是希望大家可以更好地理解pm2的原理,要理解pm2就要理解god和santan的關係,g ...
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設計思想
如果你喜歡我們的文章,關註我們的公眾號和我們互動吧。