
Quản Lý Ứng Dụng Node.js Bằng PM2
PM2 là một free open source, hiện đại, hiệu quả, cross-platform và quan trọng là nó free cho ứng dụng sử dụng Node.js với load balancer tích hợp. PM2 hoạt động trên Linux, MacOS cũng như Windows. PM2 hỗ trợ giám sát Application, quản lý hiệu quả các dịch vụ / quy trình vi mô, chạy các ứng dụng ở chế độ cluster, khởi động và tắt ứng dụng Node.js một cách gọn gàng, nhanh chóng
Nếu bạn đã từng sử dụng nodemon, hay forever thì PM2 cũng sẽ tương tự nhưng về chức năng thì có rất nhiều sự khác biệt.
PM2 giữ cho ứng dụng của bạn “alive forever” với tính năng tự động khởi động lại và có thể được kích hoạt để khởi động cùng với hệ thống, do đó cho phép cấu hình với một file hoặc kiến trúc có High A9vailability (HA).
Các tính năng chính
Bây giờ, hãy cũng mình điểm qua các tính năng chính của PM2:
- Quản lý các process, bao gồm tự động restart app khi bị chết hoặc reboot hệ thống.
- Giám sát ứng dụng
- Khai báo cấu hình qua JSON file
- Quản lý log
- Cluster mode
- Chạy các kịch bản lệnh cho hệ thống
- Seamless updates
- Cho phép tích hợp các module cho hệ thống
Tại sao nên sử dụng PM2?
Giả sử bạn có một micro service trong nodejs với file index.js chạy với port 3000, như code dưới đây.
Đoạn code trên sẽ chạy nếu bạn sử dụng node index.js , nhưng điều gì sẽ xảy ra khi app bị crash. Nếu điều đó xảy ra, chúng ta sẽ phải restart bằng thủ công bằng command line. PM2 xuất hiện để làm thay bạn điều đó, pm2 sẽ tự động restart nếu có chuyện gì xảy ra với code của bạn.
Cách dùng PM2?
PM2 được cài đặt thông qua NPM (Nodejs Package Management) bởi nó được viết bằng Javascript + Shell. Sử dụng npm để cài đặt pm2 bằng lệnh sau. Lúc này npm sẽ cài đặt phiên bản mới nhất của pm2 trên hệ thống của bạn.
npm install pm2@latest -g
Sau khi cài đặt, thay vì sử dụng node index.js để start ứng dụng thì chúng ta có thể sử dụng câu lệnh bên dưới
pm2 start index.js
Nhưng không dừng lại tại đó, pm2 có thể làm nhiều thứ hơn như:
pm2 start index.js --name --watch
Câu lệnh ở trên sẽ giúp application của bạn tự động reload khi code của bạn thay đổi.
Trong đó:
--name
Bạn muốn đặt tên cho ứng dụng quản lý của bạn, nếu có nhiều port chạy trên server của bạn.
--watch
có giá trị true
hoặc false
Điều này có nghĩa là, nếu bạn up code của bạn thì node sẽ tự hiểu là reload nếu value là true
Quản lý Process với PM2
Quản lý trạng thái ứng dụng rất đơn giản, đây là các lệnh:
$ pm2 restart app_name
- Restart ứng dụng
$ pm2 reload app_name
- Reload ứng dụng
$ pm2 stop app_name
- Stop ứng dụng – nhưng vẫn giữ ứng dụng đó ở trong list process
$ pm2 delete app_name
- Stop ứng dụng, đồng thời xoá ứng dụng ra khỏi list process
Liệt kê trạng thái của tất cả các ứng dụng được quản lý bởi PM2:
$ pm2 [list|ls|status]
Hiện thị log với realtime
$ pm2 logs
Setup cluster cho nodejs sử dụng PM2
Cluster mode cho phép Node.js application (http(s)/tcp/udp server) sử dụng tất cả các CPUs của server. Bạn không cần phải làm bất kỳ điều gì, kể cả sửa code của bạn. Điều này làm tăng đáng kể hiệu năng và độ tin cậy của các ứng dụng, tùy thuộc vào số lượng CPU có sẵn của server.
Để sử dụng cluster mode thì bạn chỉ cần thêm options -i
pm2 start index.js -i max
Trong đó max có nghĩa là PM2 sẽ tự động phát hiện số lượng CPU có sẵn và chạy càng nhiều process càng tốt.
Lời kết
Trên đây là những điều cơ bản để sử dụng PM2 trong nodejs. Nếu điều đó chưa làm bạn hiểu sâu hơn hoặc còn nhiều điều thắc mắc thì bạn có thể ghé qua trang home của pm2 – (https://pm2.keymetrics.io/)
Tham khảo: Hackernoon
Post Comment