RabbitMQ-Messagebus
Die RabbitMQ-Extension (@5minds/processcube_engine_rabbitmq_extension) bindet
einen RabbitMQ-Broker (AMQP) als Transportschicht für Engine-Signale und
-Nachrichten an. Damit lassen sich BPMN-Signal- und -Message-Events über RabbitMQ
zwischen Engine-Instanzen und externen Systemen austauschen.
Funktionsweise
- Events senden — Throw-Events (Signale/Messages) aus Prozessen an RabbitMQ weiterleiten
- Nachrichten empfangen — über RabbitMQ-Messages Catch-Events auslösen und Prozesse fortsetzen
- Asynchrone Kommunikation — Prozesse über System-Grenzen hinweg verbinden
Architektur
Die Extension registriert sich über onLoad und verbindet sich über die
Engine-Lifecycle-Hooks onBeforeResuming (Throw-Events) und onReady
(Catch-Events). Ein RabbitMQAdapter implementiert das
IMessageBusAdapter-Interface (siehe Messagebus-SDK)
und bildet Engine-Events als JSON auf AMQP-Exchanges/Queues ab.
Einrichten
Die Extension ist im Engine-Image enthalten und wird automatisch aktiv, sobald
RABBITMQ_CONNECTION_STRING gesetzt ist.
Konfiguration
| Env-Variable | Default | Beschreibung |
|---|---|---|
RABBITMQ_CONNECTION_STRING | — | String, Pflicht. AMQP-Verbindungsstring, z.B. amqp://user:pass@host:5672 |
Host, Port, Benutzer und Passwort stecken im Connection-String
(amqp://<user>:<pass>@<host>:<port>) — es gibt keine separaten Einzel-Variablen.
Verwendung
services:
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
engine:
image: marketplace.processcube.io/processcube-io/processcube_engine:latest
ports:
- "8000:8000"
environment:
- RABBITMQ_CONNECTION_STRING=amqp://admin:admin@rabbitmq:5672
depends_on:
- rabbitmqVerwaltungsoberfläche
Nach dem Start ist die RabbitMQ-Management-Oberfläche unter
http://localhost:15672 erreichbar (Zugangsdaten wie im Connection-String).
Soll RabbitMQ stattdessen Monitoring-Events der Engine empfangen, ist das ein anderer Anwendungsfall — siehe den RabbitMQ-Sink unter Monitoring.