Prosessien hallinta PM2:lla
Opitte käyttämään PM2:ta Node.js-sovellusten hallintaan, valvontaan ja skaalaamiseen tuotantoympäristöissä.
Prosessien hallinta PM2:lla on ilmainen Node.js-taustakehityksen bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Node.js-taustakehityksen bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.
Mikä PM2 on?
Tervetuloa PM2:n prosessinhallinnan pariin! PM2 on lyhenne nimestä Process Manager 2, ja se on tehokas Node.js-sovellusten työkalu.
Tuotantoympäristössä sovelluksen on toimittava luotettavasti, käynnistyttävä uudelleen kaatumisen jälkeen ja hyödynnettävä palvelimen resursseja tehokkaasti. PM2 huolehtii kaikesta tästä.
- Toiminnan ylläpito: Käynnistää sovelluksen automaattisesti uudelleen, jos se kaatuu.
- Valvonta: Tarjoaa tietoa sovelluksen suorituskyvystä.
- Skaalaus: Mahdollistaa useiden sovellusinstanssien helpon suorittamisen paremman suorituskyvyn saavuttamiseksi.
PM2:n asentaminen globaalisti
PM2:n käyttöönotto on yksinkertaista. Se asennetaan globaalisti npm:llä, jolloin se on järjestelmässä käytettävissä komentorivityökaluna.
Avatkaa pääte ja suorittakaa seuraava komento:
npm install -g pm2
Tämä komento asentaa PM2 CLI:n (Command Line Interface) globaalisti, joten voitte käyttää pm2-komentoja mistä tahansa hakemistosta.
Ensimmäisen sovelluksen käynnistäminen
Asennuksen jälkeen minkä tahansa Node.js-sovelluksen voi käynnistää yksinkertaisella komennolla. PM2 pitää sen käynnissä taustalla, vaikka pääte suljettaisiin!
Tässä on ensin yksinkertainen Node.js-palvelin:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello from PM2!\n');
});
const PORT = 3000;
server.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});Käynnistäminen PM2:lla
Edellisen osion palvelimen (oletetaan, että se on tallennettu nimellä app.js) voi käynnistää PM2:lla seuraavasti:
pm2 start app.js --name my-first-app
--name-valitsin antaa prosessille helposti tunnistettavan nimen. PM2 näyttää käynnissä olevan sovelluksen sekä sen tilan, käyttöajan ja muita tietoja.
Jos sovellus kaatuu, PM2 käynnistää sen automaattisesti uudelleen ja varmistaa näin korkean käytettävyyden!
Prosessien valvonta
PM2 tarjoaa erinomaiset työkalut käynnissä olevien sovellusten valvontaan. Voitte tarkastella nopeasti kaikkien hallittujen prosessien luetteloa ja tiloja.
pm2 list: Näyttää taulukon kaikista PM2:n hallitsemista prosesseista sekä niiden tunnisteet, nimet, tilat, suorittimen ja muistin käytön sekä käyttöajan.pm2 monit: Näyttää päätteen koontinäytössä kaikkien sovellusten suorittimen ja muistin käytön sekä lokitiedot reaaliajassa. Se sopii erinomaisesti nopeisiin kuntotarkistuksiin.
Sovellusten pysäyttäminen ja uudelleenkäynnistäminen
Sovellusten elinkaaren hallinta on PM2:lla helppoa. Voitte pysäyttää, käynnistää uudelleen tai poistaa prosesseja niiden nimen tai tunnisteen avulla.
pm2 stop my-first-app: Pysäyttää sovelluksen nimeltä 'my-first-app'.pm2 restart my-first-app: Käynnistää sovelluksen uudelleen. Hyödyllinen koodimuutosten jälkeen.pm2 delete my-first-app: Pysäyttää sovelluksen ja poistaa sen PM2:n prosessiluettelosta.pm2 stop all: Pysäyttää kaikki PM2:n hallitsemat käynnissä olevat sovellukset.
Näiden komentojen avulla voitte hallita täysin käyttöön otettuja Node.js-palveluitanne.
Määritystiedoston käyttäminen
Monimutkaisempia kokoonpanoja tai useiden sovellusten hallintaa varten PM2:ssa voi käyttää määritystiedostoa (esimerkiksi ecosystem.config.js). Tiedostossa määritetään sovellukset, ympäristömuuttujat ja muut asetukset.
Tässä on yksinkertainen esimerkkisovellus:
const http = require('http');
const port = process.env.PORT || 3001;
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(`Hello from config app on port ${port} (PID: ${process.pid})!\n`);
}).listen(port, () => {
console.log(`Config demo server running on port ${port}`);
});Esimerkki ecosystem-määrityksestä
Määritetään nyt ecosystem.config.js-tiedosto tämän sovelluksen hallintaa varten:
module.exports = {
apps : [{
name: "my-config-app",
script: "app-config-demo.js",
instances: 1,
exec_mode: "fork",
env: {
NODE_ENV: "development",
PORT: 3001
},
env_production: {
NODE_ENV: "production",
PORT: 80
}
}]
};
Tämä sovellus käynnistetään määritystiedoston avulla komennolla pm2 start ecosystem.config.js. Tämä sopii erinomaisesti versionhallintaan ja yhdenmukaisiin käyttöönottoihin.
Skaalaus klusterointitilassa
Node.js käyttää yhtä säiettä, mutta nykyaikaisissa palvelimissa on useita suorittimen ytimiä. PM2:n klusterointitilan avulla sovelluksesta voi suorittaa useita instansseja ja jakaa kuorman kaikkien käytettävissä olevien ytimien kesken.
Tässä on yksinkertainen sovellus, joka näyttää prosessitunnuksensa:
const http = require('http');
const process = require('process');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end(`Hello from instance ${process.pid}!\n`);
});
const PORT = 3002;
server.listen(PORT, () => {
console.log(`Cluster server ${process.pid} running on port ${PORT}`);
});Suorittaminen klusteritilassa
Voit käynnistää edellisen näkymän sovelluksen (esim. app-cluster.js) klusteritilassa seuraavasti:
pm2 start app-cluster.js -i max
-i max -lippu käskee PM2:ta käynnistämään yhtä monta instanssia kuin suorittimessa on ytimiä. Tämän jälkeen PM2 toimii kuormantasaajana ja jakaa saapuvat pyynnöt näiden instanssien kesken. Tämä parantaa merkittävästi suorituskykyä ja vikasietoisuutta.
PM2:n pikatarkistus
Olet oppinut hallitsemaan, valvomaan ja skaalaamaan Node.js-sovelluksia PM2:n avulla. Testataanpa, miten hyvin ymmärsit asian!
Kertaus ja seuraavat vaiheet
Hienoa työtä! Olet oppinut PM2:n prosessinhallinnan perusteet.
PM2 on tärkeä työkalu Node.js-sovellusten käyttöönottoon ja ylläpitoon tuotannossa. Se tarjoaa muun muassa automaattiset uudelleenkäynnistykset, valvonnan ja helpon skaalauksen klusteroinnin avulla.
Tutustu edelleen PM2:n dokumentaatioon ja perehdy edistyneempiin ominaisuuksiin, kuten lokien hallintaan, käynnistyskomentosarjoihin ja mukautettuihin mittareihin. Onnistuneita käyttöönottoja!
Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 22
- Oppitunnit
- 92
Usein kysytyt kysymykset
Onko oppitunti ”Prosessien hallinta PM2:lla” ilmainen?
Kyllä – oppitunnin ”Prosessien hallinta PM2:lla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Node.js-taustakehityksen bootcamp-kurssin, päivitä CoddyKit PROhon. Node.js-taustakehityksen bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Prosessien hallinta PM2:lla”?
Opitte käyttämään PM2:ta Node.js-sovellusten hallintaan, valvontaan ja skaalaamiseen tuotantoympäristöissä. Harjoittelet Node.js-taustakehityksen bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Node.js-taustakehityksen bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Node.js-taustakehityksen bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Prosessien hallinta PM2:lla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Node.js-taustakehityksen bootcamp-oppitunnilla?
Kyllä. Jokainen Node.js-taustakehityksen bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Konttiteknologia Dockerilla
- Pilvikäyttöönotto (AWS/Heroku)
- Prosessien hallinta PM2:lla
- CI/CD-putket GitHub Actionsilla