4 prosessbehandlere for Node.js-applikasjoner i Linux


En Node.js-prosessbehandling er et nyttig verktøy for å sikre at en Node.js-prosess eller et skript kjører kontinuerlig (for alltid) og kan gjøre det mulig å starte automatisk ved systemoppstart .

Den lar deg overvåke tjenestene som kjører, og den letter vanlige systemadministrasjonsoppgaver (som å starte på nytt ved feil, stopp, laste inn konfigurasjoner på nytt uten nedetid, endre miljøvariabler/innstillinger, vise ytelsesmålinger og mye mer). Den støtter også applikasjonslogging, klynging og lastbalansering, og så mange andre nyttige prosessadministrasjonsfunksjoner.

Les også: 14 beste NodeJS-rammeverk for utviklere i 2019

En pakkebehandling er nyttig spesielt for distribusjon av Node.js-applikasjoner i et produksjonsmiljø. I denne artikkelen vil vi gjennomgå fire prosessbehandlere for Node.js-applikasjonsadministrasjon i et Linux-system.

1. PM2

PM2 er en åpen kildekode, avansert, funksjonsrik, på tvers av plattformer og den mest populære prosesslederen på produksjonsnivå for Node.js med en innebygd lastbalanser. Den lar deg liste opp, overvåke og handle på alle lanserte Nodejs-prosesser, og den støtter klyngemodus.

Den støtter applikasjonsovervåking: tilbyr en enkel måte å overvåke ressursbruken (minne og CPU) til applikasjonen din. Den støtter arbeidsflyten for prosessadministrasjon ved å tillate deg å konfigurere og justere oppførselen til hver applikasjon via en prosessfil (støttede formater inkluderer Javascript, JSON og YAML<).

Applikasjonslogger er alltid nøkkelen i et produksjonsmiljø, i denne forbindelse lar PM2 deg enkelt administrere applikasjonens logger. Den gir forskjellige måter og formater for henholdsvis håndtering og visning av logger. Du kan vise logger i sanntid, tømme dem og laste dem på nytt ved behov.

Viktigere, PM2 støtter oppstartsskript som du kan konfigurere for å automatisk starte prosessene dine på tvers av forventede eller uventede omstarter av maskinen. Den støtter også automatisk omstart av et program når en fil endres i gjeldende katalog eller dens underkataloger.

I tillegg kommer PM2 med et modulsystem som lar brukere lage tilpassede moduler for Nodejs prosessadministrasjon. Du kan for eksempel lage en modul for loggrotasjonsmodul eller lastbalansering, og mye mer.

Sist men ikke minst, hvis du bruker Docker-containere, tillater PM2 containerintegrasjon, og tilbyr et API-system som lar deg bruke det programmatisk.

2. StrongLoop PM

StrongLoop PM er også en åpen kildekode, avansert produksjonsprosessleder for Node.js-applikasjoner med innebygd lastbalansering akkurat som PM2, og den kan brukes via en kommando- linje eller et grafisk grensesnitt.

Den støtter applikasjonsovervåking (se ytelsesmålinger som hendelsesløkketider, CPU- og minneforbruk), multi-host-distribusjon, klyngemodus, omstart og oppgradering av applikasjoner med null nedetid, automatisk omstart av prosesser ved feil og loggaggregering og -administrasjon.

Videre leveres den med Docker-støtte, lar deg eksportere ytelsesberegninger til StatsD-kompatible servere og se i tredjepartskonsoller som DataDog, Graphite<, Splunk samt Syslog og råloggfiler.

3. For alltid

Forever er et åpen kildekode, enkelt og konfigurerbart kommandolinjegrensesnittverktøy for å kjøre et gitt skript kontinuerlig (for alltid). Den er egnet for å kjøre mindre distribusjoner av Node.js-apper og skript. Du kan bruke for alltid på to måter: gjennom kommandolinjen eller ved å bygge den inn i koden din.

Den lar deg administrere (starte, liste, stoppe, stoppe alle, starte på nytt, starte alle på nytt osv..) Node.js-prosesser og den støtter å se etter filendringer, feilsøkingsmodus, applikasjonslogger, dreping av en prosess- og utgangssignaltilpasning, og så mye mer. I tillegg støtter den flere bruksalternativer som du kan sende direkte fra kommandolinjen eller sende dem i en JSON-fil.

4. SystemD – Service- og systemansvarlig

I Linux er Systemd en demon som administrerer systemressurser som prosesser og andre komponenter i filsystemet. Enhver ressurs administrert av systemd er kjent som en enhet. Det finnes forskjellige typer enheter inkludert service, enhet, stikkontakt, feste, mål og mange andre enheter.

Systemd administrerer enheter via en konfigurasjonsfil kjent som en enhet-fil. Derfor, for å administrere Node.js-serveren din som alle andre systemtjenester, må du opprette en enhetsfil for den, som i dette tilfellet vil være en tjenestefil.

Når du har opprettet en tjenestefil for Node.js-serveren din, kan du starte den, aktivere den til å starte automatisk ved systemoppstart, sjekke statusen, starte den på nytt (stopp og start på nytt) eller last inn konfigurasjonen på nytt, og til og med stoppe den som alle andre systemtjenester.

For mer informasjon, se: Hvordan opprette og kjøre nye tjenesteenheter i Systemd ved hjelp av Shell-skript

Sammendrag

En Node.js-pakkebehandling er et nyttig verktøy for å distribuere prosjektet ditt i et produksjonsmiljø. Det holder en applikasjon i live for alltid og forenkler hvordan du kan kontrollere den. I denne artikkelen har vi gjennomgått fire pakkeadministratorer for Node.js. Hvis du har tillegg eller spørsmål å stille, bruk tilbakemeldingsskjemaet nedenfor for å nå oss.