Rumah  >  Artikel  >  hujung hadapan web  >  Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

青灯夜游
青灯夜游ke hadapan
2023-04-19 18:59:121724semak imbas

Cara menggunakan alat pengurusan proses Node-pm2 Dalam artikel ini, kami akan bercakap tentang cara menggunakan alat pengurusan proses Node-pm2.

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

Apakah itu pm2

pm2 ialah alat pengurusan daemon yang boleh membantu anda melindungi dan mengurus aplikasi anda. Biasanya, pm2 digunakan untuk pengurusan apabila perkhidmatan itu berada dalam talian. Sebenarnya terdapat banyak perkara yang pm2 boleh lakukan, seperti memantau perubahan fail dan dimulakan semula secara automatik, pengurusan bersatu pelbagai proses, pengimbangan beban terbina dalam, sistem pengelogan, dll. Mari kita lihat cara menggunakan pm2

tutorial video nodejs,

Pengajaran pengaturcaraannpm init]

npm i pm2 -g

Seterusnya kita akan menggunakan arahan pertama pm2: dan mulakan kedua-dua program ini masing-masing

//index.js
let http = require("http");
let server = http.createServer();
server.on("request", function (req, res) {
  console.log("------------------enter");
  res.write("hello juejin");
  res.end();
});

server.listen(3000, function () {
  console.log(`服务器启动成功,通过http://localhost:3000/进行访问`);
});
//index2.js
let http = require("http");
let server = http.createServer();
server.on("request", function (req, res) {
  console.log("------------------enter2");
  res.write("hello juejin2");
  res.end();
});

server.listen(3001, function () {
  console.log(`服务器启动成功,通过http://localhost:3001/进行访问`);
});

Sudah tentu, jika anda ingin menentukan nama proses, anda boleh melakukan ini: pm2 start index.js, jika anda ingin memantau fail perubahan, anda boleh menambah pm2 start index2.jsTunggu

LawatiMari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

pm2 start -n test index.js--watch

Laksanakan

Anda boleh lihat log yang kami cetakhttp://localhost:3000/

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

Ada banyak arahan pm2, berikut adalah beberapa

pm2 log

Hentikan 1/lagi/semua program

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

Bunuh 1/lagi /Semua Program

    Mulakan Semula 1/Berbilang/Semua Program
  • pm2 stop id/id1 id2 id3/all
  • Lancarkan dan lihat log
  • pm2 delete id/id1 id2 id3/all
  • Senaraikan aplikasi
  • pm2 restart id/id1 id2 id3/all
  • Lihat panel pemantauan
  • pm2 start api.js --attach
  • Lihat data program
  • pm2 list
  • Pengimbangan bebanpm2 monit
  • Kita semua tahu bahawa NodeJS ialah utas tunggal tak segerak Jika bahasa digunakan terus ke pelayan tanpa sebarang pemprosesan, maka ia hanya boleh menggunakan satu utas pelayan, yang merupakan pembaziran prestasi yang besar.
  • pm2 show [id]Menggunakan pm2 hanya memerlukan satu arahan untuk membenarkan program kami menggunakan sepenuhnya CPU pelayan Ambil index.js sebagai contoh:
  • , sebagai contoh, jika komputer saya mempunyai 10 teras dan 20 utas, ia akan membuka 20 utas

Sudah tentu, jika anda ingin menentukan bilangan utas yang anda mahu, anda boleh terus menukar maksimum kepada bilangan utas yang anda mahu buka

pm2 start index -i max

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

Fail konfigurasi

pm2 start index -i 3Kami semua menggunakan baris arahan untuk menguruskan contoh di atas, yang sebenarnya agak menyusahkan, pm2 menyediakan bentuk konfigurasi fail.

Kami terus menggunakan arahan Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2 untuk menjana fail konfigurasi ringkas

, ubah suai untuk menunjuk ke dua perkhidmatan kami

dan kemudian kami akan proses asal Bunuh mereka semua dan laksanakan

Begitu juga, dua perkhidmatan kami dimulakan

pm2 init simpleecosystem.config.js

module.exports = {
  apps: [
    {
      name: "index",
      script: "./index.js",
    },
    {
      name: "index2",
      script: "./index2.js",
    },
  ],
};
Berikut menyenaraikan beberapa item konfigurasi

pm2 start ecosystem.config.js

LogMari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2Log sangat penting untuk penyelesaian masalah bahagian belakang pm2 mempunyai fungsi log sendiri Contohnya, kami mengkonfigurasi parameter berkaitan log dalam fail konfigurasi di atas

ecosystem.config.jsApabila kami memulakan projek. , log akan direkodkan dalam log

module.exports = {
  apps: [
    {
      name: "index", //name
      script: "./index.js", //相对于pm2 start 的相对路径
      cwd: "", //要启动的应用程序的目录
      instances: 2, //要启动实例的数量,就是上面提到的负载
      watch: true, //是否启动监听
      env: { NODE_ENV: "development" }, //	将出现在您的应用程序中的 env 变量
      env_xxx: {
        NODE_ENV: "xxx", //使用pm2注入xxx变量进行切换
      },
      log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式
      error_file: "./log/index-error.log", //错误文件路径
      out_file: "./log/index-out.log", //输出日志文件路径
      max_restarts: 10, //最大重启数
      restart_delay: 4000, //重启延迟时间ms
      autorestart: true, //是否自动重启
      cron_restart: "", //定时重启 使用cron表达式
    },
    {
      name: "index2",
      script: "./index2.js",
    },
  ],
};

Fungsi log PM2 sendiri tidak menyokong pemisahan log. Apabila masa berlalu, fail log akan menjadi lebih besar dan lebih besar, yang bukan sahaja akan menjejaskan prestasi, tetapi juga sangat menyusahkan untuk menyelesaikan masalah kemudian, jadi kita perlu membahagikan log. Operasi pemisahan log adalah sangat mudah Anda hanya perlu memasang pemalam

Sila ambil perhatian bahawa di sini adalah pm2 install
log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式
error_file: "./log/index-error.log", //错误文件路径
out_file: "./log/index-out.log", //输出日志文件路径

dan kemudian laksanakan pm2 conf. Anda boleh melihat konfigurasi yang berkaitan >

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

Terangkan maksud yang berkaitanpm2-logrotate

  • Compress:是否通过 gzip 压缩日志

  • max_size:单个日志文件的大小

  • retain:保留的日志文件个数

  • dateFormat:日志文件名中的日期格式,默认是 YYYY-MM-DD_HH-mm-ss

  • rotateModule:是否把 pm2 本身的日志也进行分割,

  • workerInterval:检查文件时间间隔

  • rotateInterval:设置强制分割,默认值是 0 0 * * *,意思是每天晚上 0 点分割,这里使用的是 corn 表达式,不会的可以搜索一下

如果我们想要配置也很简单,比如修改 max_size

pm2 set pm2-logrotate:max_size 1K

然后我们简单测试一下这个工具,我们先设置每个 log 文件最大 1kb

然后重启我们的项目

pm2 restart ecosystem.config.js

然后就会发现我们的日志被分割了

Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2

总结

pm2对于node服务的管理是十分方便的,文中提到的只是其中一部分,如果你想使用pm2管理你的服务的话可以到官网pm2.io/ 进行学习

更多node相关知识,请访问:nodejs 教程

Atas ialah kandungan terperinci Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam