Website-Suche

4 Prozessmanager für Node.js-Anwendungen unter Linux


Ein Node.js-Prozessmanager ist ein nützliches Tool, um sicherzustellen, dass ein Node.js-Prozess oder -Skript kontinuierlich (für immer) ausgeführt wird, und kann ihn beim Systemstart automatisch starten lassen .

Es ermöglicht Ihnen, die laufenden Dienste zu überwachen und allgemeine Systemverwaltungsaufgaben zu erleichtern (z. B. Neustart bei Fehler, Stoppen, Neuladen von Konfigurationen ohne Ausfallzeit, Ändern von Umgebungsvariablen/-einstellungen, Anzeigen von Leistungsmetriken und vieles mehr). Es unterstützt außerdem Anwendungsprotokollierung, Clustering und Lastausgleich sowie viele andere nützliche Prozessverwaltungsfunktionen.

Lesen Sie auch: Die 14 besten NodeJS-Frameworks für Entwickler im Jahr 2019

Ein Paketmanager ist insbesondere für die Bereitstellung von Node.js-Anwendungen in einer Produktionsumgebung nützlich. In diesem Artikel werden wir vier Prozessmanager für die Node.js-Anwendungsverwaltung in einem Linux-System untersuchen.

1. PM2

PM2 ist ein Open-Source-, fortschrittlicher, funktionsreicher, plattformübergreifender und beliebtester Prozessmanager auf Produktionsebene für Node.js mit integriertem Load Balancer. Es ermöglicht Ihnen, alle gestarteten Nodejs-Prozesse aufzulisten, zu überwachen und darauf zu reagieren, und es unterstützt den Cluster-Modus.

Es unterstützt die Anwendungsüberwachung: bietet eine einfache Möglichkeit, die Ressourcennutzung (Speicher und CPU) Ihrer Anwendung zu überwachen. Es unterstützt Ihren Prozessmanagement-Workflow, indem es Ihnen ermöglicht, das Verhalten jeder Anwendung über eine Prozessdatei zu konfigurieren und zu optimieren (zu den unterstützten Formaten gehören Javascript, JSON und YAML<).).

Anwendungsprotokolle sind in einer Produktionsumgebung immer von entscheidender Bedeutung. In dieser Hinsicht ermöglicht Ihnen PM2 die einfache Verwaltung der Protokolle Ihrer Anwendung. Es bietet verschiedene Möglichkeiten und Formate für die Handhabung bzw. Anzeige von Protokollen. Sie können Protokolle in Echtzeit anzeigen, leeren und bei Bedarf neu laden.

Wichtig ist, dass PM2 Startskripte unterstützt, die Sie so konfigurieren können, dass Ihre Prozesse bei erwarteten oder unerwarteten Maschinenneustarts automatisch gestartet werden. Es unterstützt auch den automatischen Neustart einer Anwendung, wenn eine Datei im aktuellen Verzeichnis oder seinen Unterverzeichnissen geändert wird.

Darüber hinaus verfügt PM2 über ein Modulsystem, mit dem Benutzer benutzerdefinierte Module für das Nodejs-Prozessmanagement erstellen können. Sie können beispielsweise ein Modul für die Protokollrotation oder den Lastausgleich und vieles mehr erstellen.

Wenn Sie Docker-Container verwenden, ermöglicht PM2 nicht zuletzt die Integration von Containern und bietet ein API-System, mit dem Sie es programmgesteuert verwenden können.

2. StrongLoop PM

StrongLoop PM ist ebenfalls ein Open-Source-, fortschrittlicher Produktionsprozessmanager für Node.js-Anwendungen mit integriertem Lastausgleich, genau wie PM2, und kann über einen Befehl verwendet werden. Linie oder eine grafische Oberfläche.

Es unterstützt Anwendungsüberwachung (Anzeige von Leistungsmetriken wie Ereignisschleifenzeiten, CPU- und Speicherverbrauch), Multi-Host-Bereitstellung, Cluster-Modus, Neustarts und Upgrades von Anwendungen ohne Ausfallzeiten, automatischen Neustart von Prozessen bei Fehlern sowie Protokollaggregation und -verwaltung.

Darüber hinaus wird es mit Docker-Unterstützung ausgeliefert, ermöglicht Ihnen den Export von Leistungsmetriken auf StatsD-kompatible Server und die Anzeige in Konsolen von Drittanbietern wie DataDog, Graphite<, Splunk sowie Syslog- und Rohprotokolldateien.

3. Für immer

Forever ist ein Open-Source-Tool mit einfacher und konfigurierbarer Befehlszeilenschnittstelle, mit dem ein bestimmtes Skript kontinuierlich (für immer) ausgeführt werden kann. Es eignet sich für die Ausführung kleinerer Bereitstellungen von Node.js-Apps und -Skripten. Sie können forever auf zwei Arten verwenden: über die Befehlszeile oder durch Einbetten in Ihren Code.

Sie können damit Node.js-Prozesse verwalten (starten, auflisten, stoppen, alle stoppen, neu starten, alle neu starten usw.) und es unterstützt die Überwachung auf Dateiänderungen, den Debug-Modus, Anwendungsprotokolle und das Beenden einer Prozess- und Ausgangssignalanpassung und vieles mehr. Darüber hinaus werden mehrere Verwendungsoptionen unterstützt, die Sie direkt über die Befehlszeile oder in einer JSON-Datei übergeben können.

4. SystemD – Service- und Systemmanager

Unter Linux ist Systemd ein Daemon, der Systemressourcen wie Prozesse und andere Komponenten des Dateisystems verwaltet. Jede von systemd verwaltete Ressource wird als Einheit bezeichnet. Es gibt verschiedene Arten von Einheiten, darunter Service-, Geräte-, Sockel-, Halterungs-, Ziel- und viele andere Einheiten.

Systemd verwaltet Einheiten über eine Konfigurationsdatei, die als unit-Datei bezeichnet wird. Um Ihren Node.js-Server wie alle anderen Systemdienste verwalten zu können, müssen Sie daher eine Unit-Datei dafür erstellen, in diesem Fall eine Dienstdatei.

Sobald Sie eine Dienstdatei für Ihren Node.js-Server erstellt haben, können Sie ihn starten, den automatischen Start beim Systemstart aktivieren, seinen Status überprüfen und neu starten (anhalten und erneut starten). oder laden Sie seine Konfiguration neu und stoppen Sie ihn sogar wie alle anderen Systemd-Dienste.

Weitere Informationen finden Sie unter: So erstellen und führen Sie neue Serviceeinheiten in Systemd mithilfe eines Shell-Skripts aus

Zusammenfassung

Ein Node.js-Paketmanager ist ein nützliches Tool zum Bereitstellen Ihres Projekts in einer Produktionsumgebung. Es hält eine Anwendung für immer am Leben und vereinfacht die Steuerung. In diesem Artikel haben wir vier Paketmanager für Node.js überprüft. Wenn Sie Ergänzungen oder Fragen haben, nutzen Sie das untenstehende Feedback-Formular, um uns zu kontaktieren.