Wie konfiguriert man den n8n-Queue-Modus auf einem VPS?

Wenn Ihre n8n-Automatisierungs-Workflows immer komplexer werden, kann deren effiziente Ausführung zu einer Herausforderung werden. Die Ausführung aller Aufgaben in einem einzigen Prozess kann zu langen Ausführungszeiten, unnötiger Systembelastung oder sogar zum Ausfall Ihrer Automatisierung führen.

Die Lösung für dieses Problem ist der n8n-Queue-Modus. Er führt eine Auftragswarteschlange ein, die Ihre Aufgaben auf mehrere Worker-Prozesse verteilt, anstatt alles an einem Ort auszuführen. So führen die Worker Ihre Workflows unabhängig voneinander aus, was Leistung und Skalierbarkeit erhöht.

Diese Anleitung zeigt Ihnen Schritt für Schritt, wie Sie den Queue-Modus auf einem Hostinger VPS einrichten. Am Ende können Sie Ihr n8n-Automatisierungsökosystem zuverlässiger und skalierbarer betreiben.

Wie funktioniert der Queue-Modus?

Standardmäßig arbeitet n8n in einem Single-Thread-Hauptprozess, in dem alle Aufgaben nacheinander abgearbeitet werden. Dies funktioniert gut bei Automatisierungen mit geringem Durchsatz, kann jedoch zu Engpässen führen, wenn Ihre Arbeitslast steigt.

Der Queue-Modus unterteilt Ihr gesamtes n8n-Backend effektiv in drei separate Bereiche:

  • Verwaltungssegment – dieses ist für die visuelle Benutzeroberfläche, die Konfiguration der Workflows und die Verwaltung all Ihrer Trigger zuständig.
  • Speichersegment – hier speichert n8n alle Ihre Daten wie Aufgaben, Workflows, Anmeldedaten und Protokolle. Der Unterschied zu einer Standard-n8n-Konfiguration besteht darin, dass hier Redis – eine Schlüssel-Wert-Datenbank – als Message-Broker dient.
  • Worker-Segment – hier führt n8n die gesamte Automatisierungslogik aus und bearbeitet Ihre Automatisierungsschritte parallel.

So sieht dies visuell aus:

ServiceRolle
Hauptinstanz von n8nVerwaltet die visuelle Benutzeroberfläche, die Workflow-Konfigurationen und deren Auslöser
RedisFungiert als Nachrichtenvermittler für die Auftragswarteschlange
n8n-DatenbankSpeichert Daten zur Ausführung von Workflows, wie beispielsweise Protokolle und Ergebnisse
n8n-Worker-InstanzenRuft ausstehende Aufträge aus Redis ab und führt die Automatisierungsschritte aus

So sieht der allgemeine Prozessablauf im Queue-Modus aus:

Um dies besser einordnen zu können, lässt sich diese Konfiguration mit anderen gängigen Plattformen zur Arbeitsorchestrierung vergleichen.

  • Kubernetes verwaltet die Infrastruktur auf eine im Grunde ähnliche Weise, indem es Pods erstellt, die von einer Steuerungsebene verwaltet werden, während einzelne Container die Anwendungs-Workloads bearbeiten.
  • Batch-Jobs bei gängigen Cloud-Anbietern funktionieren genau wie der Queue-Modus von n8n, mit einer Job-Warteschlange, die von anderen Lösungen asynchron abgeholt wird.
  • Lastverteiler arbeiten ähnlich und verteilen den Traffic auf mehrere identische Instanzen zur parallelen Ausführung.

Im Kern ist dies eine einfache Methode, um Ihre Automatisierungsfunktionen zu skalieren. Wenn Sie mehr Automatisierungsläufe gleichzeitig ausführen möchten, starten Sie einfach weitere Automatisierungsprozesse. Der Queue-Modus verteilt den Workflow dabei wie ein Lastverteiler.

Voraussetzungen

Um n8n im Queue-Modus mit Redis zu betreiben, gelten folgende Mindestsystemanforderungen:

  • 1 vCPU, 2 vCPUs empfohlen
  • 1 GB Arbeitsspeicher, 2 GB Arbeitsspeicher empfohlen

Außerdem benötigen Sie:

  • Docker, oder Node.js mit installiertem npm auf Ihrem VPS.
  • Grundlegende Kenntnisse der Linux-Befehle und Vertrautheit mit dem Terminal.
  • Sie sollten mit der Bearbeitung von Konfigurationsdateien vertraut sein.

Sie können den Queue-Modus zwar mit der standardmäßig installierten und verwendeten SQLite-Datenbank ausführen, wir empfehlen jedoch, stattdessen PostgreSQL zu installieren, wie später in dieser Anleitung beschrieben.

n8n und Redis sind nicht rechenintensiv, daher ist der Arbeitsspeicher hier der wichtigste Faktor. Ein Hostinger KVM 2 VPS mit Ubuntu ist eine gute Wahl für eine einfache n8n-Queue-Modus-Konfiguration und bietet Platz für:

  • Den n8n-Hauptprozess
  • Redis-Cluster
  • PostgreSQL-Datenbank
  • Drei n8n-Worker-Prozesse

Diese Kombination bewältigt kleine bis mittelgroße Workflow-Konfigurationen problemlos und gibt Ihnen reichlich Spielraum für eine Skalierung.

Konfiguration des Queue-Modus in n8n

In diesem Tutorial implementieren wir den n8n-Queue-Modus auf einer einzelnen VPS KVM 2-Instanz unter Ubuntu 24.04. Wir installieren n8n manuell über Docker. Dieser Ansatz ist am einfachsten zu implementieren und zu skalieren.

1. Einen Redis-Container vorbereiten

Der n8n-Queue-Modus setzt Redis als Message-Broker zur Verwaltung von Job-Warteschlangen ein – Redis ist daher eine kritische Komponente dieser Konfiguration. Um einen Redis-Container auf Ihrer n8n-Instanz vorzubereiten, führen Sie folgende Schritte aus:

  1. Melden Sie sich bei hPanel an.
  2. Navigieren Sie zu VPS und klicken Sie auf Verwalten bei Ihrer Instanz.
  1. Klicken Sie auf Einstellungen → Browser-Terminal.
  1. Erstellen Sie ein Verzeichnis, in dem Redis seine persistenten Daten speichert:
mkdir -p ~/redis-data
  1. Erstellen Sie ein Verzeichnis zum Speichern Ihrer Arbeitsdateien.
mkdir ~/n8n-queue-modecd ~/n8n-queue-mode
  1. Erstellen Sie die Datei docker-compose.yml:
sudo nano docker-compose.yml
  1. Fügen Sie darin die YAML-Konfiguration für einen Redis-6-Container ein:
version: "3.7“
services: redis: image: redis:6 container_name: redis restart: always volumes: - ~/redis-data:/data
  1. Speichern Sie Ihre Änderungen, indem Sie Strg + X → Y → Enter drücken.

Nachdem Redis nun eingerichtet und betriebsbereit ist, möchten Sie möglicherweise zusätzliche Konfigurationen an Ihrer Redis-Instanz vornehmen, beispielsweise ein Passwort festlegen. Befolgen Sie dazu die Konfigurationsschritte, die in unserer Redis-Installationsanleitung beschrieben sind.

Da wir jedoch einen Redis-Container verwenden, müssen Sie zusätzlich eine benutzerdefinierte redis.conf-Datei hinzufügen, um Ihre Einstellungen zu speichern, und diese als Volume und Befehl einbinden.

Wenn Sie beispielsweise die Datei redis.conf im Verzeichnis ~/redis-conf hinzugefügt haben, müssten Sie die folgenden Zeilen in Ihre docker-compose.yml einfügen:

volumes:
  - ~/redis-conf/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]

2. Konfigurieren Sie die Umgebungsvariablen

Nachdem Sie Redis vorbereitet haben, müssen Sie die erforderlichen Variablen konfigurieren, um den Queue-Modus zu aktivieren. In unserem Szenario verfügen wir bereits über eine n8n-Instanz, die mit nginx eingerichtet ist. Als Nächstes verlagern wir diese in eine containerisierte Umgebung.

Hier sind die wichtigsten Variablen, die Sie festlegen müssen:

VariableZweck
EXECUTIONS_MODE=queueLegt den Queue-Modus als Ausführungsmodus fest
QUEUE_BULL_REDIS_HOST=redisLegt den Hostnamen der Redis-Instanz fest. Da wir eine containerisierte Redis-Instanz verwenden, lautet der Wert redis.
QUEUE_BULL_REDIS_PORT=6379Legt den Port fest, auf dem Redis lauscht (standardmäßig 6379)
N8N_RUNNERS_ENABLED=trueAktiviert bzw. deaktiviert die Ausführung von Tasks
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=trueStellt sicher, dass auch manuell ausgeführte Workflows an die Worker weitergeleitet werden

Weitere wichtige Variablen sind:

VariableZweck
QUEUE_HEALTH_CHECK_ACTIVE=trueAktiviert eine interne Zustandsprüfung zur Überwachung der Redis-Verbindung
QUEUE_BULL_REDIS_PASSWORDFalls Sie ein Passwort für Redis festgelegt haben, geben Sie es auch hier ein

Da Sie nun wissen, welche Einstellungen erforderlich sind, lassen Sie uns diese einrichten.

  1. Wechseln Sie zurück in Ihr Arbeitsverzeichnis:
cd ~/n8n-queue-mode
  1. Erstellen Sie eine .env-Datei, in der Ihre Variablen gespeichert werden. Falls Sie möchten, können Sie diese umbenennen:
sudo nano .env

Speichern Sie folgende Werte:

N8N_LOG_LEVEL=debugN8N_LOG_OUTPUT=console
N8N_BASIC_AUTH_ACTIVE=trueN8N_BASIC_AUTH_USER=<your_username>N8N_BASIC_AUTH_PASSWORD=<your_password>
N8N_HOST=srv721674.hstgr.cloudN8N_PORT=5678N8N_PROTOCOL=httpsWEBHOOK_URL=https://srv721674.hstgr.cloud/GENERIC_TIMEZONE=UTC
N8N_EXPRESS_TRUST_PROXY=trueN8N_SECURE_COOKIE=true
EXECUTIONS_MODE=queueQUEUE_BULL_REDIS_HOST=redisQUEUE_BULL_REDIS_PORT=6379N8N_RUNNERS_ENABLED=trueOFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=true

Die zusätzlichen Werte für den Queue-Modus sind fett hervorgehoben – falls Sie bereits über eine Umgebungsdatei verfügen, können Sie lediglich die fettgedruckten Zeilen zu Ihrer bestehenden Konfiguration hinzufügen.

Profi-Tipp

Die Protokollierungseinstellungen sind zwar optional, erweisen sich jedoch als nützlich, um den Status unserer Container zu überprüfen und Fehler zu beheben.

  1. Speichern Sie Ihre Änderungen, indem Sie Strg + X → Y → Enter drücken

3. Starten Sie den Hauptprozess von n8n

Bisher haben Sie alle Umgebungsvariablen definiert, die für die Funktion des Queue-Modus erforderlich sind. Nun definieren wir unseren n8n-Container für den Hauptprozess:

  1. Öffnen Sie docker-compose.yml, indem Sie folgenden Befehl ausführen:
sudo nano docker-compose.yml
  1. Fügen Sie unter „services“ den folgenden Code hinzu:
  n8n:
 image: n8nio/n8n
 container_name: n8n
 restart: always
 env_file:
 - .env
    ports:
 - "5678:5678"
 volumes:
 - ~/.n8n:/home/node/.n8n depends_on: - redis
  1. Speichern Sie Ihre Änderungen, indem Sie Strg + X → Y → Enter drücken

Ihre „docker-compose.yml“-Datei sollte in etwa so aussehen:

An dieser Stelle können Sie Ihren n8n-Prozess starten, indem Sie folgenden Befehl ausführen:

docker compose up -d

Melden Sie sich nun bei Ihrer Instanz an – Sie sollten die gewohnte Ansicht sehen. Führen Sie zur Prüfung einen einfachen Workflow aus, der eine Webanfrage an Google sendet:

Dies sollte funktionieren, obwohl Sie den Queue-Modus aktiviert und den Hauptprozess so konfiguriert haben, dass er als Warteschlangen-Orchestrator fungiert.

Dies ist ein Ausfallsicherheitsmechanismus in n8n: Wenn keine Worker zur Bearbeitung Ihrer Ausführungen verfügbar sind, übernimmt die Hauptinstanz die Arbeit, anstatt sie an Redis zu verteilen.

Trotz all dieser Konfigurationen führen Sie n8n noch nicht im Queue-Modus aus. Lassen Sie uns dies ändern, indem wir einige Worker bereitstellen.

4. PostgreSQL-Datenbank bereitstellen

Nachdem Sie den Hauptprozess konfiguriert haben, legen Sie nun die PostgreSQL-Datenbank an. Dies ist zwar optional, wird jedoch für Workloads auf Produktionsniveau empfohlen, für deren Bearbeitung SQLite schlichtweg nicht ausgelegt ist. Glücklicherweise lässt sich eine Postgres-Datenbank schnell und einfach einrichten:

  1. Öffnen Sie docker-compose.yml:
sudo nano docker-compose.yml
  1. Fügen Sie am Ende den folgenden Inhalt hinzu:
postgres:
 image: postgres:15
 container_name: n8n-postgres
 restart: always
 environment:
 POSTGRES_USER: n8n
 POSTGRES_PASSWORD: <Ihr_Passwort>
      POSTGRES_DB: n8ndb
 volumes:
 - pgdata:/var/lib/postgresql/data

volumes: pgdata:
  1. Speichern Sie die Datei mit Strg + X → Y → Enter.
  2. Öffnen Sie Ihre .env-Datei:
sudo nano .env
  1. Fügen Sie die folgenden Konfigurationsangaben für die Postgres-Datenbank hinzu:
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8ndb
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=<Ihr_Passwort>
  1. Speichern Sie mit Strg + X → Y → Enter.

Starten Sie nun das Programm:

docker compose up -d

Sie können außerdem überprüfen, ob die PostgreSQL-Datenbank funktioniert, indem Sie folgenden Befehl ausführen:

docker exec -it n8n-postgres psql -U n8n -d n8ndb
\dt

Optional können Sie nun SQLite löschen:

rm ~/.n8n/database.sqlite
rm ~/.n8n/*.sqlite*

Important

Wichtig! Falls der Wert für den Verschlüsselungsschlüssel für Ihre Hauptinstanz nicht festgelegt ist, generiert n8n beim Neuerstellen der Konfigurationsdatei einen neuen Schlüssel. Um dies zu vermeiden, empfehlen wir, N8N_ENCRYPTION_KEY in beiden Umgebungsdateien festzulegen, um die Zuverlässigkeit zu gewährleisten.

5. Worker-Prozesse starten

Sobald sich n8n im Queue-Modus befindet, ist es auf dedizierte Worker-Prozesse angewiesen, um Aufträge aus Redis abzurufen. Richten wir einen Worker-Prozess ein:

  1. Rufen Sie zunächst den Verschlüsselungsschlüssel für die Worker ab. Sie können ihn bei der Erstellung einer neuen n8n-Instanz selbst festlegen – andernfalls generiert n8n automatisch einen für Sie, falls kein Schlüssel angegeben wurde. Führen Sie folgenden Befehl aus:
cat ~/.n8n/config

Kopieren Sie den Wert von encryptionKey, da Sie ihn in Ihren Umgebungsvariablen speichern müssen.

  1. Erstellen Sie eine neue Umgebungsdatei für die Worker. Sie können zwar eine einzige Datei für alle n8n-Instanzen verwenden, doch die Trennung in eine Haupt- und eine Worker-Datei erleichtert die Verwaltung:
sudo nano .env.worker
  1. Fügen Sie die folgenden Konfigurationsangaben ein:
N8N_LOG_LEVEL=debugN8N_LOG_OUTPUT=console
EXECUTIONS_MODE=queue
N8N_RUNNERS_ENABLED=true
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=trueN8N_ENCRYPTION_KEY=<your_encryption_key>

QUEUE_BULL_REDIS_HOST=redis
QUEUE_BULL_REDIS_PORT=6379

DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8ndb
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=<Ihr_Passwort>
  1. Speichern Sie die Datei mit Strg + X → Y → Enter.
  2. Öffnen Sie die Datei docker-compose.yml:
sudo nano docker-compose.yml
  1. Fügen Sie diesen Dienst direkt unterhalb des PostgreSQL-Dienstes ein:
n8n-worker:
 image: n8nio/n8n
 restart: always
 command: worker
 env_file:
 - .env.worker
 depends_on:
 - redis
 - postgres
  1. Speichern Sie die Datei mit Strg + X → Y → Enter.
  2. Starten Sie den Worker-Knoten:
docker compose up -d n8n-worker

Important

Wichtig! Wenn Sie für Ihre Hauptinstanz keinen Verschlüsselungsschlüssel festlegen, erstellt n8n bei der nächsten Neuerzeugung der Konfigurationsdatei einen neuen Schlüssel. Um das zu vermeiden, empfehlen wir, N8N_ENCRYPTION_KEY in beiden Umgebungsdateien zu setzen – so bleibt das System zuverlässig.

Um weitere Worker zu starten, führen Sie docker compose mit dem Argument scale aus:

docker compose up -d --scale n8n-worker=3

6. Testen Sie die Konfiguration

Um zu testen, ob der N8N-Queue-Modus funktioniert, führen Sie einige Test-Workflows aus oder planen Sie einen Workflow ein. Hier verwenden wir einen einfachen aktiven Workflow, der in Intervallen von zehn Sekunden ausgeführt wird:

Kehren Sie nach einigen Minuten zu Ihrem Terminal zurück und überprüfen Sie die Protokolle des n8n-Workers:

docker logs <Name des Arbeiters> -f

Sie sollten etwa folgende Ausgabe sehen:

Achten Sie insbesondere auf Einträge wie Worker started execution <Zahl>, die zeigen, dass n8n erfolgreich Aufträge vom Message Broker abruft.

Das war es – Sie haben den n8n-Queue-Modus erfolgreich konfiguriert und er ist nun bereit, Ihre Arbeitslasten zu bewältigen!

7. Überwachung und Skalierung

Sie sollten Ihre Automatisierung im n8n-Queue-Modus warten, um die Leistung stabil zu halten. Achten Sie auf diese Punkte:

  • Überwachen Sie Ihre CPU- und Speicher-Metriken in hPanel oder mit dem Befehl htop im Terminal.
  • Führen Sie docker stats aus, um die Leistung einzelner Container zu prüfen.
  • Verwenden Sie redis-cli-Befehle wie info memory oder info stats, um Redis zu überwachen.

Wenn Sie feststellen, dass Container an ihre Grenzen stoßen, ist es an der Zeit, die Kapazität zu erweitern. Dies können Sie erreichen, indem Sie folgenden Befehl ausführen: docker compose up -d –scale service=Zahl.

Angesichts der Hardwarekapazität, die Hostingers VPS für n8n bietet, sollten 2 bis 3 Worker eine sichere Grundausstattung darstellen, obwohl Sie je nach Umfang Ihrer Automatisierung auch mit 5 oder mehr auskommen könnten.

Sollten Sie Probleme mit den Infrastrukturressourcen bekommen, finden Sie hier einige Schritte, die Sie in Betracht ziehen sollten:

  • Verlegen Sie Redis und PostgreSQL auf einen separaten, dedizierten VPS.
  • Erwägen Sie einen Orchestrator wie Kubernetes, um n8n-Worker je nach Auslastung dynamisch zu skalieren, statt manuell.
  • Erweitern Sie Ihre Infrastruktur, um wachsenden Anforderungen gerecht zu werden.

Fazit

Der Betrieb von n8n im Queue-Modus ermöglicht bessere Skalierbarkeit, Stabilität und Kontrolle über die Ausführung Ihrer Workflows. Die Trennung der Jobplanung von der Ausführung und die Auslagerung von Aufgaben an dedizierte Worker-Prozesse verringern das Risiko von Leistungsengpässen.

Mit dieser Anleitung haben Sie den Queue-Modus konfiguriert, Worker bereitgestellt und gelernt, wie Sie Ihr System auf einem Hostinger VPS überwachen und skalieren können. Wenn Ihre Automatisierung wächst, können Sie horizontal skalieren, indem Sie weitere Worker hinzufügen oder Redis und PostgreSQL auf separaten Servern hosten.

Sind Sie bereit, Ihre Automatisierung weiter voranzutreiben? Richten Sie ein solideres Überwachungssystem ein, implementieren Sie komplexere Orchestrierungslösungen und loten Sie die Grenzen von n8n aus!

Häufig gestellte Fragen (FAQ) zum n8n-Queue-Modus

Was ist der Queue-Modus in n8n?

Der Queue-Modus ist eine n8n-Konfiguration, die die Verteilung von Workflows von deren Ausführung entkoppelt, indem eine Job-Warteschlange genutzt wird, die in der Regel auf Redis basiert. In diesem Modus stellt die Hauptinstanz die Ausführung von Workflows in die Warteschlange, während dedizierte Worker-Prozesse die Jobs asynchron abrufen und verarbeiten. Diese Trennung verbessert die Skalierbarkeit und Stabilität in Umgebungen mit hoher Auslastung und in verteilten Systemen.

Wie aktiviere ich den Queue-Modus in n8n?

Um den Queue-Modus in n8n zu aktivieren, setzen Sie die Umgebungsvariable EXECUTIONS_MODE in Ihren Konfigurationsdateien sowohl für die Hauptinstanz als auch für die Worker-Prozesse auf queue. Konfigurieren Sie außerdem Ihre Redis-Optionen für die Warteschlange und setzen Sie optional OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS und QUEUE_HEALTH_CHECK_ACTIVE auf true.

Welche Vorteile bietet die Verwendung des Queue-Modus in n8n?

Der Queue-Modus in n8n bietet mehrere Vorteile, darunter eine verbesserte Skalierbarkeit und eine bessere Ressourcenauslastung. Durch die Auslagerung der Ausführung von Workloads auf dedizierte n8n-Worker wird verhindert, dass der Hauptprozess zu einem Engpass wird. Dies ist sowohl für die Fehlerbehandlung als auch für die Ermöglichung einer asynchronen Verarbeitung in n8n hilfreich und führt zu einem schnelleren und stabileren System für Umgebungen mit hoher Auslastung.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Vera P.

Vera ist eine erfahrene Lokalisierungs-Spezialistin bei Hostinger und optimiert erfolgreich Inhalte für globale Zielgruppen. Dank ihres umfassenden SEO-Wissens sorgt sie dafür, dass Hostingers Webhosting-Dienste für ein breites Publikum sichtbar, zugänglich und attraktiv sind. Mit Kreativität mit Präzision überwindet sie Sprachbarrieren in ihren Projekten und trägt so dazu bei, Hostingers Reichweite zu vergrößern und Kunden weltweit ein nahtloses Erlebnis zu bieten.

Was unsere Kunden sagen

Comments

0 responses

Write a respond

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.