مقیاس Node.js خود را با PM2: حالت خوشه در مقابل حالت چنگال

اگر در حال ساختن یک برنامه Node.js با درجه تولید هستید ، احتمالاً از PM2 شنیده اید-یک مدیر فرآیند قدرتمند که به شما کمک می کند تا برنامه خود را برای همیشه زنده نگه دارید.
اما آیا می دانید از PM2 پشتیبانی می کند چند رشته از حالت خوشه استفاده می کنید؟
در این مقاله ، شما را از طریق تفاوت بین حالت خوشه وت حالت چنگال در PM2 ، و نحوه استفاده از آنها با یک مثال واقعی با استفاده از ecosystem.config.js
بشر
pm PM2 چیست؟
PM2 یک مدیر فرآیند تولید برای برنامه های Node.js است. این کار را انجام می دهد:
- مدیریت فرآیند
- تعادل بار
- راه اندازی مجدد خودکار
- نظارت و ورود به سیستم
شما می توانید آن را در سطح جهانی با استفاده از:
sudo npm install -g pm2
برای اطمینان از نصب آن ، نسخه را بررسی کنید:
pm2 --version
🔁 حالت چنگال (تک رشته ای)
حالت چنگال حالت پیش فرض در PM2 است. این یک نمونه از برنامه شما در هر فرآیند PM2 را اجرا می کند. این برای برنامه های ساده یا اسکریپت هایی که نیازی به چند رشته یا تعادل بار ندارند ، مفید است.
پیکربندی مثال:
module.exports = {
apps: [
{
name: "my_app", // Replace with your desired app name
script: "npm",
args: "run dev",
env: {
NODE_ENV: "production"
}
}
]
};
آن را با:
pm2 start ecosystem.config.js
mode حالت خوشه (چند رشته ای / متعادل)
اگر برنامه شما محدود به CPU است یا نیاز به انجام چندین درخواست کارآمد دارد ، حالت خوشه دوست شما است. از آن استفاده می کند cluster
ماژول داخلی برای چرخش چندین نمونه (چنگال) برنامه خود – یکی برای هر هسته CPU.
این به ارمغان می آورد:
- عملکرد بهتر
- تعادل بار خودکار
- استفاده از پردازنده چند هسته ای
برای حالت خوشه ، می توانید با استفاده از آن در سطح جهانی نصب کنید:
sudo npm install -g @socket.io/pm2
پیکربندی مثال:
module.exports = {
apps: [
{
name: "my_app",
script: "index.js", // Your app’s entry point
instances: "max", // Automatically uses all CPU cores
exec_mode: "cluster",
env: {
NODE_ENV: "production"
}
}
]
};
آن را با:
pm2 start ecosystem.config.js
با استفاده از تمام هسته های CPU ، این برنامه شما را در حالت خوشه اجرا می کند.
✅ چه موقع از چه چیزی استفاده کنیم؟
|Mode |Use When... |
|---------------|-----------------------------------------------------------|
|Fork Mode |Simpler apps, background jobs, or single-threaded logic |
|Cluster Mode |You want to scale across all CPU cores and handle more load|
🧪 مراحل نهایی: دستورات مفید PM2
- وضعیت برنامه را بررسی کنید:
pm2 status
- مشاهده گزارش ها:
pm2 logs
- برنامه راه اندازی مجدد:
pm2 restart all
- برنامه توقف:
pm2 stop my_app
- لیست فرآیند را برای شروع خودکار در راه اندازی مجدد ذخیره کنید:
pm2 save
- به طور خودکار از راه اندازی مجدد سرور شروع کنید:
pm2 startup
- دستور را دنبال کنید
pm2 startup
می دهد:sudo env PATH=$PATH:/home/ubuntu/.nvm/versions/node/vXX.X.X/bin pm2 startup systemd -u ubuntu --hp /home/ubuntu)
پایان
استفاده از PM2 با حالت خوشه می تواند با استفاده از کلیه هسته های CPU موجود ، عملکرد برنامه شما را به طور قابل توجهی تقویت کند. این یک روش آسان برای مقیاس برنامه Node.js شما بدون تغییر به راه حل های پیچیده تر است.
در نظرات به من اطلاع دهید که چگونه از PM2 استفاده می کنید ، یا اگر هر دو حالت را امتحان کرده اید!