AMQP-Konnektor
Übersicht
Abschnitt betitelt „Übersicht“Der AMQP-Konnektor ermöglicht Publish/Subscribe-Messaging über RabbitMQ und jeden AMQP 0.9.1-Broker, mit Exchanges, Queues und Routing-Keys.
Konnektor-Typen:
AmqpReader- Nachrichten aus einer Queue oder Exchange-Bindung konsumierenAmqpWriter- Nachrichten an einen Exchange mit einem Routing-Key veröffentlichen
AMQP Reader
Abschnitt betitelt „AMQP Reader“Nachrichten aus einer bestehenden Queue konsumieren:
{ "type": "AmqpReader", "config": { "url": "amqp://guest:guest@localhost:5672/", "queue": "sensor_events", "autoAck": false, "prefetchCount": 10, "consumerTag": "meddle-reader" }}An einen Exchange binden
Abschnitt betitelt „An einen Exchange binden“Wenn queue leer ist und exchange gesetzt ist, deklariert der Reader eine temporäre exklusive Queue und bindet sie unter Verwendung von routingKey an den Exchange:
{ "type": "AmqpReader", "config": { "url": "amqp://user:password@rabbit.example.com:5672/", "exchange": "factory.events", "routingKey": "line1.*.temperature", "autoAck": true }}TLS-Verbindung
Abschnitt betitelt „TLS-Verbindung“{ "type": "AmqpReader", "config": { "url": "amqps://user:password@rabbit.example.com:5671/", "queue": "secure_events", "tls": true, "autoAck": false }}AMQP Writer
Abschnitt betitelt „AMQP Writer“Nachrichten an einen Exchange veröffentlichen:
{ "type": "AmqpWriter", "config": { "url": "amqp://guest:guest@localhost:5672/", "exchange": "factory.events", "routingKey": "line1.temperature", "mandatory": false, "contentType": "application/json" }}An Standard-Exchange veröffentlichen (Direkt zur Queue)
Abschnitt betitelt „An Standard-Exchange veröffentlichen (Direkt zur Queue)“exchange leer lassen und den Queue-Namen als Routing-Key verwenden:
{ "type": "AmqpWriter", "config": { "url": "amqp://guest:guest@localhost:5672/", "exchange": "", "routingKey": "sensor_events" }}Konfigurationsparameter
Abschnitt betitelt „Konfigurationsparameter“- url: AMQP-Verbindungs-URI (
amqp://user:pass@host:port/vhostoderamqps://...) - exchange: Exchange-Name (leerer String zielt auf den Standard-Exchange)
- queue: Queue-Name, aus dem konsumiert wird (nur Reader)
- routingKey: Routing-Key oder Bindungsmuster
- tls: TLS für die Verbindung verwenden
- prefetchCount: (Reader) Maximale unbestätigte Nachrichten auf dem Kanal
- autoAck: (Reader) Nachrichten bei Zustellung automatisch bestätigen
- consumerTag: (Reader) Client-bereitgestellte Konsumenten-Kennung
- mandatory: (Writer) Nachricht an Publisher zurückgeben, wenn sie nicht geroutet werden kann
- contentType: (Writer) MIME-Typ für veröffentlichte Nachrichten (Standard:
application/json)
Bestätigungsmodi
Abschnitt betitelt „Bestätigungsmodi“- autoAck: true - Der Broker betrachtet Nachrichten als zugestellt, sobald sie gesendet werden. Schneller, aber Nachrichten können bei Konsumenten-Crash verloren gehen.
- autoAck: false - Meddle bestätigt jede erfolgreiche Nachricht explizit und negiert bei Payload-Fehlern. Mit
prefetchCountverwenden, um In-Flight-Nachrichten zu begrenzen.
Routing-Key-Muster
Abschnitt betitelt „Routing-Key-Muster“Topic-Exchanges unterstützen Wildcards in Bindungsschlüsseln:
*entspricht genau einem Wort:line1.*.temperature#entspricht null oder mehr Wörtern:factory.#