Loading Now

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

Contact