Managed MQTT Cloud

Öffentlicher vs. privater MQTT-Broker: Welcher passt zu Ihrem Projekt?

Öffentliche MQTT-Broker sind ideal zum Lernen und für Demos, echte Geräte gehören dagegen auf einen privaten Broker. Lernen Sie die praktischen Unterschiede kennen und erfahren Sie, wie Sie wechseln, ohne Ihre Clients neu zu schreiben.

Illustration zu öffentlichem vs. privatem MQTT-Broker, links ein offener gemeinsamer Topic-Bereich, rechts ein abgeschlossener privater Broker
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

Die Wahl zwischen einem öffentlichen und einem privaten MQTT-Broker läuft auf eine Frage hinaus: Wer kann Ihre Nachrichten sonst noch sehen und verändern? Dieser Leitfaden erklärt, wie sich beide bei Datenschutz, Authentifizierung, Limits und Zuverlässigkeit unterscheiden, und zeigt genau, wann und wie Sie von einem öffentlichen MQTT-Broker auf einen privaten wechseln, ohne Ihren Code neu zu schreiben.

Was ein öffentlicher MQTT-Broker ist

Ein öffentlicher Broker ist ein über das Internet erreichbarer MQTT-Server, mit dem sich jeder ohne Konto verbinden kann. Sie wählen eine Client-ID, abonnieren ein Topic und beginnen zu veröffentlichen. Es gibt mehrere davon; ConnectMQ betreibt einen unter broker.connectmq.com, der im Artikel zum kostenlosen öffentlichen MQTT-Broker ausführlich beschrieben wird.

Öffentliche Broker sind für das Lernen, Demos, schnelle Verbindungstests und das Teilen von Beispielen gedacht. Sie sind bewusst offen, und genau deshalb sind sie kein Ort für echte Gerätedaten.

Die wichtigsten Eigenschaften eines öffentlichen Brokers:

  • Anonymer Zugriff. Kein Benutzername, kein Passwort, also kann sich jeder verbinden.
  • Gemeinsamer Topic-Bereich. Alle Clients sehen denselben Topic-Baum. Wenn Sie ein Topic abonnieren können, kann es auch ein Fremder.
  • Schützende Limits. Damit der Dienst für alle nutzbar bleibt, begrenzen öffentliche Broker Nachrichtengröße, Rate und Abonnements.
  • Keine Garantien. Es handelt sich um einen kostenlosen Community-Dienst, nicht um eine Produktionsplattform.

Was ein privater MQTT-Broker ist

Ein privater Broker akzeptiert nur Clients mit gültigen Zugangsdaten. Sein Topic-Bereich gehört Ihnen und Ihren Geräten. Er kann selbst betrieben oder ein verwalteter MQTT-Broker sein; in beiden Fällen zeichnen ihn folgende Merkmale aus:

  • Authentifizierung. Clients legen einen Benutzernamen, ein Passwort und meist eine Client-ID vor, die der Broker kennt.
  • Isolation. Andere Mandanten können Ihre Topics weder lesen noch darin veröffentlichen.
  • Standardmäßige Verschlüsselung. TLS auf 8883 und Secure WebSocket auf 8084 für Browser.
  • Limits passend zu Ihrem Tarif statt zu einer Menge anonymer Nutzer.

Wenn Sie mehr Hintergrund zu MQTT-Brokern möchten, behandelt jener Artikel das Publish/Subscribe-Modell selbst.

Öffentlicher vs. privater MQTT-Broker auf einen Blick

Aspekt Öffentlicher Broker (broker.connectmq.com) Privater, verwalteter MQTT-Broker
Konto erforderlich Nein Ja, kostenlose Registrierung
Authentifizierung Anonym, beliebige nicht leere, eindeutige Client-ID Generierter Benutzername, Passwort und Client-ID
Wer Ihre Topics lesen kann Jeder, der sie abonniert Nur Ihre Clients mit Zugangsdaten
Nachrichtengröße Bis 64 KB 256 KB bei Serverless (Free), 1 MB bei Serverless (Paid)
Rate 10 Nachrichten pro Sekunde und Client Tarifkontingente
Abonnements 10 pro Client, 8 Topic-Ebenen Tarifkontingente
QoS 0, 1 und 2 Bis 1 im kostenlosen, 2 im kostenpflichtigen Tarif
Session-Ablauf Bis 30 Minuten Von Ihren Clients im Rahmen der Tariflimits konfiguriert
Geeignet für Tutorials, Demos, schnelle Tests Prototypen mit echten Daten, Pilotprojekte, Produktion

Das Protokoll ist identisch. MQTT 3.1.1 und MQTT 5.0 verhalten sich auf beiden gleich; nur Zugriff und Limits ändern sich.

Wann ein öffentlicher Broker das richtige Werkzeug ist

Nutzen Sie einen öffentlichen Broker, wenn die Daten für niemanden sonst einen Wert haben und Geschwindigkeit am wichtigsten ist:

  1. MQTT lernen. In wenigen Minuten veröffentlichen, abonnieren, Wildcards und Retained Messages ausprobieren.
  2. Workshops und Schulungen. Jeder Teilnehmer verbindet sich, ohne etwas konfigurieren zu müssen.
  3. Eine neue Bibliothek oder ein neues Board testen. Prüfen, ob Ihr ESP32 oder Python-Skript überhaupt einen Broker erreicht.
  4. Ein reproduzierbares Beispiel teilen. Ein Blogbeitrag oder Bug-Report, den jeder ausführen kann.

Ein schneller Test sieht so aus:

# Mit eindeutigem Präfix abonnieren, damit Sie nicht mit anderen Nutzern vermischt werden
mosquitto_sub -h broker.connectmq.com -p 1883 -i demo-sub-c41d -t "connectmq/demo/c41d/#" -v

# Aus einem anderen Terminal veröffentlichen
mosquitto_pub -h broker.connectmq.com -p 1883 -i demo-pub-c41d -t "connectmq/demo/c41d/hello" -m "it works"

Verwenden Sie immer ein zufälliges, eindeutiges Topic-Präfix wie connectmq/demo/c41d/. Es trennt Ihren Testverkehr von dem anderer, macht ihn aber nicht privat.

Wann Sie einen privaten Broker brauchen

Wechseln Sie auf einen privaten Broker, sobald einer dieser Punkte zutrifft:

  • Die Daten identifizieren eine Person, eine Wohnung, ein Fahrzeug oder einen Ort. Sensorwerte, die verraten, wann ein Haus leer steht, sind sensibel und können unter die DSGVO fallen.
  • Die Daten stammen aus Ihrer Produktion. Maschinendaten, Taktzeiten oder OEE-Werte sind Betriebsgeheimnisse; auf einem öffentlichen Broker kann jeder mitlesen.
  • Geräte nehmen Befehle entgegen. Auf einem öffentlichen Broker kann jeder in Ihr Befehls-Topic veröffentlichen.
  • Sie führen ein Pilotprojekt mit einem Kunden durch. Dieser wird Authentifizierung und Verschlüsselung erwarten.
  • Sie brauchen größere Nachrichten, mehr Durchsatz oder mehr Abonnements, als die öffentlichen Limits erlauben.
  • Verfügbarkeit zählt. Auf einem öffentlichen MQTT-Broker, der für Tests gedacht ist, sollte man kein Produkt aufbauen.

Der Artikel zu den Grenzen öffentlicher MQTT-Broker erklärt jede dieser Einschränkungen ausführlicher.

Von öffentlich zu privat wechseln, ohne neu zu schreiben

Da beide Seiten Standard-MQTT sprechen, ist der Wechsel eine Konfigurationsänderung. Hier ein Python-Beispiel mit paho-mqtt 2.x, das sein Ziel aus Umgebungsvariablen liest, sodass derselbe Code gegen beide Broker läuft:

import os
import ssl
import paho.mqtt.client as mqtt

HOST = os.getenv("MQTT_HOST", "broker.connectmq.com")
PORT = int(os.getenv("MQTT_PORT", "1883"))
USERNAME = os.getenv("MQTT_USERNAME")          # für den öffentlichen Broker nicht gesetzt
PASSWORD = os.getenv("MQTT_PASSWORD")
CLIENT_ID = os.getenv("MQTT_CLIENT_ID", "demo-c41d-py")
TOPIC = os.getenv("MQTT_TOPIC", "connectmq/demo/c41d/temp")


def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    client.subscribe(TOPIC, qos=1)
    client.publish(TOPIC, "21.7", qos=1)


def on_message(client, userdata, msg):
    print(msg.topic, msg.payload.decode())


client = mqtt.Client(
    mqtt.CallbackAPIVersion.VERSION2,
    client_id=CLIENT_ID,
    protocol=mqtt.MQTTv5,
)
client.on_connect = on_connect
client.on_message = on_message

if USERNAME:
    client.username_pw_set(USERNAME, PASSWORD)
if PORT == 8883:
    client.tls_set(cert_reqs=ssl.CERT_REQUIRED)

client.connect(HOST, PORT, keepalive=60)

try:
    client.loop_forever()
except KeyboardInterrupt:
    client.disconnect()

Für den privaten Broker setzen Sie die Variablen aus Ihrem ConnectMQ-Portal:

export MQTT_HOST=broker.connectmq.com
export MQTT_PORT=8883
export MQTT_USERNAME=YOUR_USERNAME
export MQTT_PASSWORD=YOUR_PASSWORD
export MQTT_CLIENT_ID=YOUR_CLIENT_ID
export MQTT_TOPIC=plant1/line1/temp
python client.py

Beachten Sie, dass die Client-ID bei ConnectMQ an die ausgegebenen Zugangsdaten gebunden ist. Verwenden Sie also die vom Portal generierte Client-ID, statt eine neue zu erfinden.

Häufige Fehler beim Wechsel

  • Port 1883 in der Produktions-Firmware belassen. Verwenden Sie 8883 (TLS) für Geräte und 8084 mit dem Pfad /mqtt für Browser.
  • Das Demo-Topic-Präfix beibehalten. Benennen Sie Topics nach einer echten Struktur um, zum Beispiel Standort/Bereich/Linie/Gerät. Der Leitfaden zum Cloud-MQTT-Broker gibt Hinweise zum Topic-Design für verwaltete MQTT-Broker. In Industrie-4.0-Projekten wird daraus ein Unified Namespace (UNS), dessen Topics der ISA-95-Hierarchie folgen, etwa acme/werk-muenchen/montage/linie-1/zelle-3/temperatur.
  • Zugangsdaten fest in einem öffentlichen Repository hinterlegen. Laden Sie sie aus Umgebungsvariablen, einem Secrets-Store oder per Geräte-Provisioning.
  • Eine Client-ID auf mehreren Geräten wiederverwenden. Der Broker trennt jedes Mal die ältere Session, wenn sich das andere Gerät verbindet, was eine Reconnect-Schleife auslöst.
  • Überall QoS 2 voraussetzen. Der kostenlose Serverless-Tarif unterstützt QoS bis 1. Wenn Sie QoS 2 brauchen, nutzen Sie einen kostenpflichtigen Tarif oder gestalten Sie die Verarbeitung mit QoS 1 idempotent. Siehe MQTT-QoS-Stufen erklärt.

Sicherheits-Checkliste für Ihren privaten Broker

Der Wechsel auf einen privaten Broker beseitigt den anonymen Zugriff, doch einige Gewohnheiten entscheiden darüber, wie sicher das Ergebnis tatsächlich ist:

  1. Ein Satz Zugangsdaten pro Gerät oder Dienst. Geht ein Gerät verloren oder wird es kompromittiert, können Sie es widerrufen, ohne die anderen anzufassen.
  2. TLS überall außerhalb des Labors. Prüfen Sie das Serverzertifikat in Ihrem Client, statt die Prüfung abzuschalten, um eine Fehlermeldung loszuwerden.
  3. Telemetrie- und Befehls-Topics trennen. Machen Sie im Topic-Baum deutlich, welche Nachrichten den Zustand realer Anlagen verändern, und prüfen Sie, wer dorthin veröffentlicht.
  4. Das Verbindungsprotokoll im Blick behalten. Wiederholt fehlgeschlagene Anmeldungen deuten meist auf ein falsch konfiguriertes Gerät oder durchgesickerte Zugangsdaten hin. Ihr Broker sperrt eine IP womöglich nach wiederholten Fehlversuchen, die Ursache sollten Sie trotzdem finden.
  5. Ein Test-Topic-Präfix für Experimente behalten, damit sich Debugging-Verkehr nie mit Produktionsdaten vermischt.

Der Leitfaden zu MQTT-Sicherheits-Best-Practices geht auf jeden dieser Punkte tiefer ein.

Eine einfache Faustregel

Nutzen Sie den öffentlichen Broker für alles, was Sie auch bedenkenlos in einem Forum posten würden. Für alles andere nutzen Sie einen privaten Broker. Da der Wechsel nur ein paar Konfigurationswerte kostet, gibt es keinen Grund, echte Geräte länger als den ersten Nachmittag auf einem öffentlichen Broker zu lassen.

Ihr privater Broker bei ConnectMQ

Wenn Sie über Tests hinausgehen möchten, registrieren Sie sich für einen kostenlosen Serverless-Tarif, ganz ohne Kreditkarte. Erstellen Sie einen Broker, kopieren Sie den generierten Benutzernamen, das Passwort und die Client-ID und richten Sie denselben Code auf Port 8883 aus. Mit dem MQTT-Client im Browser und dem Live-Topic-Explorer des Portals bestätigen Sie den Datenverkehr sofort. Erfahren Sie mehr über ConnectMQ und darüber, wie ein verwalteter MQTT-Broker Ihnen die Betriebsarbeit abnimmt.

Häufig gestellte Fragen

Können andere meine Nachrichten auf einem öffentlichen MQTT-Broker sehen?

Ja. Jeder kann auf einem öffentlichen Broker jedes Topic abonnieren, auch mit Wildcards wie #. Senden Sie niemals personenbezogene Daten, Zugangsdaten oder Befehle, die reale Anlagen steuern.

Ist ein privater MQTT-Broker immer verschlüsselt?

Nicht automatisch, aber ein guter privater, verwalteter MQTT-Broker bietet TLS auf 8883 und Secure WebSocket auf 8084. Verwenden Sie diese Ports in Produktion statt unverschlüsseltem TCP auf 1883.

Muss ich meinen Code ändern, um von öffentlich auf privat zu wechseln?

Meist ändern sich nur Host, Port, Zugangsdaten und Client-ID. Liest Ihr Code diese Werte aus der Konfiguration, dauert der Wechsel nur Minuten.

Reicht ein kostenloser privater Broker für einen Prototyp?

Für viele Prototypen ja. Der kostenlose Serverless-Tarif von ConnectMQ erlaubt bis zu 25 Verbindungen, QoS bis 1 und Nachrichten bis 256 KB, was die meisten kleinen Pilotprojekte abdeckt.

Verwandte Artikel

BYOC-MQTT-Broker: Bring Your Own Cloud einfach erklärt

Ein BYOC-MQTT-Broker läuft in Ihrem Cloud-Konto, wird aber von einem Anbieter betrieben. Erfahren Sie, wie das Modell funktioniert, wie die Verantwortung aufgeteilt ist und wie Sie Ihr Konto darauf vorbereiten.

8 Min. Lesezeit

Google Cloud IoT Core Alternative: Optionen und Migration nach der Abschaltung

Google hat Cloud IoT Core im August 2023 eingestellt. Dieser Leitfaden vergleicht die realistischen Alternativen, überträgt IoT-Core-Konzepte auf reines MQTT und zeigt, wie Sie Geräte zu einem verwalteten MQTT-Broker umziehen, während die Daten weiter in Google Cloud fließen.

8 Min. Lesezeit

MQTT-Nachrichten pro Sekunde: Durchsatz abschätzen und messen

Die Durchsatzplanung für MQTT läuft auf wenige Formeln und eine ehrliche Messung hinaus. Erfahren Sie, wie Sie eingehende und ausgehende Nachrichten pro Sekunde abschätzen, Spitzen berücksichtigen und das Ergebnis einem Broker-Plan zuordnen.

7 Min. Lesezeit

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.