Zoeken op website

4 procesmanagers voor Node.js-applicaties in Linux


Een Node.js-procesmanager is een handig hulpmiddel om ervoor te zorgen dat een Node.js-proces of -script continu (voor altijd) wordt uitgevoerd en ervoor kan zorgen dat het automatisch wordt gestart bij het opstarten van het systeem .

Hiermee kunt u de actieve services monitoren en worden algemene systeembeheertaken vergemakkelijkt (zoals opnieuw opstarten bij een storing, stoppen, configuraties opnieuw laden zonder downtime, omgevingsvariabelen/-instellingen wijzigen, prestatiegegevens weergeven en nog veel meer). Het ondersteunt ook applicatielogboekregistratie, clustering en taakverdeling, en vele andere nuttige functies voor procesbeheer.

Lees ook: 14 beste NodeJS-frameworks voor ontwikkelaars in 2019

Een pakketbeheerder is vooral handig voor de implementatie van Node.js-applicaties in een productieomgeving. In dit artikel bespreken we vier procesmanagers voor Node.js applicatiebeheer in een Linux-systeem.

1. PM2

PM2 is een open-source, geavanceerde, veelzijdige, platformonafhankelijke en populairste procesmanager op productieniveau voor Node.js met een ingebouwde load balancer. Hiermee kunt u alle gelanceerde Nodejs-processen weergeven, monitoren en er actie op ondernemen, en het ondersteunt de clustermodus.

Het ondersteunt applicatiemonitoring: biedt een eenvoudige manier om het bronnengebruik (geheugen en CPU) van uw applicatie te controleren. Het ondersteunt uw procesbeheerworkflow doordat u het gedrag van elke applicatie kunt configureren en afstemmen via een procesbestand (ondersteunde formaten zijn Javascript, JSON en YAML).

Applicatielogboeken zijn altijd essentieel in een productieomgeving. In dit opzicht kunt u met PM2 de logbestanden van uw applicatie eenvoudig beheren. Het biedt verschillende manieren en formaten voor het respectievelijk verwerken en weergeven van logs. U kunt logboeken in realtime weergeven, leegmaken en indien nodig opnieuw laden.

Belangrijk is dat PM2 opstartscripts ondersteunt die u kunt configureren om uw processen automatisch te starten bij verwachte of onverwachte herstarts van de machine. Het ondersteunt ook het automatisch herstarten van een applicatie wanneer een bestand wordt gewijzigd in de huidige map of de submappen ervan.

Bovendien wordt PM2 geleverd met een modulesysteem waarmee gebruikers aangepaste modules kunnen maken voor Nodejs-procesbeheer. U kunt bijvoorbeeld een module maken voor de logrotatiemodule of taakverdeling, en nog veel meer.

Last but not least: als je Docker-containers gebruikt, maakt PM2 containerintegratie mogelijk en biedt het een API-systeem waarmee je het programmatisch kunt gebruiken.

2. StrongLoop PM

StrongLoop PM is ook een open-source, geavanceerde productieprocesmanager voor Node.js-applicaties met ingebouwde taakverdeling, net als PM2 en kan worden gebruikt via een opdracht- lijn of een grafische interface.

Het ondersteunt applicatiemonitoring (bekijk prestatiestatistieken zoals looptijden van gebeurtenissen, CPU- en geheugenverbruik), implementatie op meerdere hosts, clustermodus, herstarten en upgrades van applicaties zonder downtime, automatische herstart van processen bij fouten, en logaggregatie en -beheer.

Bovendien wordt het geleverd met Docker-ondersteuning, kunt u prestatiestatistieken exporteren naar StatsD-compatibele servers en bekijken in consoles van derden, zoals DataDog, Graphite<, Splunk evenals Syslog en onbewerkte logbestanden.

3. Voor altijd

Forever is een open-source, eenvoudige en configureerbare opdrachtregelinterfacetool om een bepaald script continu (voor altijd) uit te voeren. Het is geschikt voor het uitvoeren van kleinere implementaties van Node.js apps en scripts. U kunt forever op twee manieren gebruiken: via de opdrachtregel of door het in uw code in te sluiten.

Hiermee kunt u Node.js-processen beheren (starten, weergeven, stoppen, alles stoppen, opnieuw opstarten, alles opnieuw opstarten, enz.) en het ondersteunt het kijken naar bestandswijzigingen, debug-modus, applicatielogboeken, doden van een proces- en uitgangssignaalaanpassing, en nog veel meer. Bovendien ondersteunt het verschillende gebruiksopties die u rechtstreeks vanaf de opdrachtregel kunt doorgeven of in een JSON-bestand kunt doorgeven.

4. SystemD – Service- en systeembeheerder

In Linux is Systemd een daemon die systeembronnen beheert, zoals processen en andere componenten van het bestandssysteem. Elke bron die wordt beheerd door systemd staat bekend als een eenheid. Er zijn verschillende soorten eenheden, waaronder service-, apparaat-, socket-, mount-, target- en vele andere eenheden.

Systemd beheert eenheden via een configuratiebestand dat bekend staat als een unit-bestand. Om uw Node.js-server te kunnen beheren zoals alle andere systeemservices, moet u daarom een eenheidsbestand maken, wat in dit geval een servicebestand zal zijn.

Zodra u een servicebestand voor uw Node.js-server heeft gemaakt, kunt u deze starten, inschakelen dat deze automatisch wordt gestart tijdens het opstarten van het systeem, de status ervan controleren, opnieuw opstarten (stoppen en opnieuw starten) of herlaad de configuratie ervan, en stop het zelfs zoals alle andere systeemdiensten.

Zie voor meer informatie: Nieuwe service-eenheden maken en uitvoeren in Systemd met behulp van Shell Script

Samenvatting

Een Node.js pakketbeheerder is een handig hulpmiddel voor het implementeren van uw project in een productieomgeving. Het houdt een applicatie voor altijd levend en vereenvoudigt de manier waarop u deze kunt beheren. In dit artikel hebben we vier pakketbeheerders voor Node.js beoordeeld. Als u aanvullingen of vragen heeft, kunt u gebruik maken van het onderstaande feedbackformulier om ons te bereiken.