Zum Inhalt springen

MQTT v5-Konnektor

Der MQTT v5-Konnektor ermöglicht Publish/Subscribe-Messaging unter Verwendung des MQTT 5.0-Protokolls und fügt Shared Subscriptions, User-Properties und Message-Expiry zusätzlich zu MQTT v3 hinzu.

Konnektor-Typen:

  • MqttV5Reader - MQTT 5.0-Topics abonnieren
  • MqttV5Writer - Auf MQTT 5.0-Topics veröffentlichen

Für MQTT 3.1.1-Broker und -Clients verwenden Sie den MQTT v3-Konnektor.

Ein Topic abonnieren:

{
"type": "MqttV5Reader",
"config": {
"endpoint": "mqtt://localhost:1883",
"topic": "sensors/temperature",
"qos": 1,
"clientId": "meddle-v5-reader"
}
}
{
"type": "MqttV5Reader",
"config": {
"endpoint": "mqtts://mqtt.example.com:8883",
"topic": "factory/sensors/#",
"qos": 1,
"clientId": "meddle-v5-reader",
"username": "mqtt_user",
"password": "mqtt_password"
}
}

Nachrichten unter Verwendung von sharedGroup über mehrere Reader verteilen. Der Konnektor abonniert $share/<group>/<topic>, und der Broker verteilt die Zustellungen zwischen den Mitgliedern:

{
"type": "MqttV5Reader",
"config": {
"endpoint": "mqtt://broker.example.com:1883",
"topic": "factory/events",
"qos": 1,
"clientId": "meddle-v5-reader-1",
"sharedGroup": "meddle-workers"
}
}

Auf einem Topic veröffentlichen:

{
"type": "MqttV5Writer",
"config": {
"endpoint": "mqtt://localhost:1883",
"topic": "data/output",
"qos": 1,
"clientId": "meddle-v5-writer"
}
}

Beibehaltene Nachricht mit Ablauf und User-Properties

Abschnitt betitelt „Beibehaltene Nachricht mit Ablauf und User-Properties“
{
"type": "MqttV5Writer",
"config": {
"endpoint": "mqtts://mqtt.example.com:8883",
"topic": "devices/state",
"qos": 1,
"clientId": "meddle-v5-writer",
"username": "mqtt_user",
"password": "mqtt_password",
"retain": true,
"messageExpiry": 3600,
"userProperties": {
"source": "meddle",
"schema": "v1"
}
}
}
  • endpoint: Broker-URL mit Schema (mqtt://host:port oder mqtts://host:port)
  • topic: Zu abonnierendes oder zu veröffentlichendes Topic (Reader unterstützt +- und #-Wildcards)
  • qos: Quality of Service: 0, 1 oder 2
  • clientId: (Optional) Client-Kennung
  • username: (Optional) MQTT-Benutzername
  • password: (Optional) MQTT-Passwort
  • sharedGroup: (Reader) Shared-Subscription-Gruppe für Lastverteilung
  • userProperties: Schlüssel/Wert-Metadaten, die an Nachrichten angehängt werden
  • retain: (Writer) Broker speichert die letzte Nachricht und stellt sie neuen Abonnenten zu
  • messageExpiry: (Writer) Nachrichten-Ablaufintervall in Sekunden
  • 0: Höchstens einmal (fire and forget)
  • 1: Mindestens einmal (bestätigte Zustellung)
  • 2: Genau einmal (garantierte Zustellung)
  • Shared Subscriptions (sharedGroup) ermöglichen es mehreren Abonnenten, ein einzelnes Topic mit broker-seitiger Lastverteilung zu konsumieren.
  • User-Properties tragen beliebige Schlüssel/Wert-Metadaten pro Nachricht.
  • Message-Expiry verwirft nicht zugestellte Nachrichten nach dem konfigurierten Intervall.
  • Reason-Codes auf Connect, Subscribe und Publish bieten reichhaltigere Fehlersemantik, die vom zugrundeliegenden paho-Client behandelt wird.
  • + - Einzelebenen-Wildcard (sensors/+/temperature)
  • # - Mehrebenen-Wildcard (sensors/#)
  • MQTT v3 - Klassischer MQTT 3.1.1-Konnektor
  • AMQP - RabbitMQ-Pub/Sub-Alternative
  • NATS - Cloud-native Pub/Sub-Alternative