Cluster-Bildung mit Mosquitto-broker
Ich bin mit Mosquitto-broker zu implementieren MQTT-Protokoll. Aber ich bin nicht in der Lage zu finden, wie der Cluster kann getan werden, im Falle des mosquitto-Broker. Auch gibt es eine Begrenzung der Anzahl von clients, die diese bedient werden können bei einem broker.
InformationsquelleAutor Abhishek Maheshwari | 2014-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man nicht tun, das clustering mit mosquitto.
Einige andere MQTT-Broker gibt, die Cluster unterstützen, einschließlich HiveMQ. HiveMQ ist ein elastisches cluster-Fähigkeit mit automatischer Erkennung und eine verteilte masterless Architektur und die sehr gut funktioniert auf cloud-Anbietern wie AWS oder Azure.
Sie können sehen, eine vollständige Liste von allen Brokern, die Unterstützung der Clusterbildung hier.
Disclaimer: ich bin ein Entwickler von HiveMQ, so dass diese Antworten möglicherweise verzerrt werden.
Gemäß der Dokumentation: "mosquitto-clustering erreicht auf backend-Ebene (redis, amqp etc.)."
Ich sehe das nicht in der offiziellen Dokumentation und soweit ich weiß gibt es keine offizielle Unterstützung für die, die in mosquitto. Beachten Sie, dass selbst wenn Sie eine Datenbank verwenden, die für "clustering", Sie handeln den single point of failure als wäre es die Datenbank. Aber das ist eher ein theoretisches Anliegen als mosquitto unterstützt keine "backend" out of the box.
InformationsquelleAutor Dominik Obermaier
Ursprüngliche Quelle dieser Antwort: Horizontale Skalierung für Makler. Ich habe gerade die plugin-Unterstützung.
Zwei Funktionalitäten des mosquitto-broker kombiniert verwendet werden könnte, um das setup eine
n
Knoten-cluster.Die bridge-Funktionalität wird NUR verwendet, um die Synchronisierung von Nachrichten zwischen allen mosquitto-Broker, während der mosquitto-auth-plugin verwendet werden könnte, zu sparen-und ACL-Autorisierung in einer einzigen Datenbank-back-end.
Beim einrichten der bridge, beachten Sie die Verwendung von in - /out-bridge Themen zu vermeiden forwarding loops(Zwei). Das Muster ist von format
Zitieren mosquitto.conf-man-Seite(Drei), Für eingehende Themen, die Brücke voran, die Muster mit der remote-Präfix und abonnieren Sie das erstellte Thema auf dem remote-broker. Wenn eine passende eingehende Nachricht empfangen wird, wird der remote-Präfix wird aus dem Thema entfernt und dann die local-Präfix Hinzugefügt. Und Umgekehrt für eine abgehende Thema
Probe mosquitto.conf für einen cluster mit 3 Knoten unten ist. Sein laden getestet mit mqtt-malaria(Vier) und noch wichtiger ist die Auswirkung auf clients, die eine Verbindung mit clean_session flag auf false .
Sollte ich die löschen diese Antwort oder eine klarere Quelle Namensnennung ist erforderlich?.
Wäre schön gewesen, gesagt haben, Woher die Idee kam
Getan. Schlechtes Verhalten auf meiner Seite. Ja, Ihr Kommentar-link (2) in der zweiten para war nicht offensichtlich für den Leser.
Es ist wichtig zu beachten, dass dies erstreckt sich nur auf message-routing zwischen Maklern, Kunden werden nicht in der Lage, um wieder Ihre permanente Sitzungen, die auf anderen broker-Instanzen nicht erhalten Ihre Nachrichten in der Warteschlange. Das gleiche gilt für unfertige QoS 1 und 2 message flows.
InformationsquelleAutor
Gibt es 2 (zu diesem Zeitpunkt) die wichtigsten open-source
Projekte, die umfassende Unterstützung MQTT-Implementierungen und clustering -
VerneMQ und EMQ sind sowohl im SCHRIFTLICHEN als auch in Erlang, die sehr geeignet für verteiltes messaging, mit allen Replikations-als integrierte in-toolset Teil der (Erlang -) Sprache.
VerneMQ die kommerziellen enterprise-support, während EMQ plant in Naher Zukunft, auch beide Projekte haben große Unternehmen sichern Ihnen als Sponsoren.
Können Sie auch einen Blick in HiveMQ, der das älteste Kind im block, kann doch nicht sein verwendet ohne eine Lizenz bezahlt.
InformationsquelleAutor syberkitten
Es ist nicht auf der Liste erwähnt von Dominik, aber Solace Systems ist ein MQTT appliance unterstützt clustering. Jeder broker unterstützt mehrere hunderttausend gleichzeitige client-verbindungen.
Disclaimer: ich bin ein System-Ingenieur bei Trost
InformationsquelleAutor Hans Jespersen
Dem Weg habe ich angesprochen-clustering für mosquitto wurde, um das setup eine haproxy-frontend, das reverse-proxies zu mehreren hören Broker.
Habe ich auch noch einen Schritt weiter gegangen zu nutzen, DNS-SD, die die neuesten Versionen von mosquitto Unterstützung bei der
-S
Flagge.Jedoch hat es einige Probleme mit dieser Konstruktion, nämlich in der Anwendung-Unterstützung für dnssd und libresolv auf den meisten Distributionen nicht Ehren, die domain-und such-Felder in der resolv.conf.
Deshalb, wenn Sie Ihre arbeiten rund um ein legacy-Umfeld, dann würde ich vorschlagen, auf der Suche entweder in rabbitmq, hivemq, oder redis pubsub für mehr Produktions-level-Lösung, das kann sein shoehorned in bereits bestehende Fußstapfen.
InformationsquelleAutor Dwight Spencer
Ihr Aussehen kann in Bevywise IoT-Plattform. Es ist ein Kommerzielles Angebot. Dieser hat eine option zum hinzufügen von so vielen Maklern wie möglich zu skalieren. Dies unterstützt das MQTT und MQTT-SN-Protokolle.
Disclaimer: ich arbeite für Bevywise Netzwerke.
InformationsquelleAutor Ranjith Kumar Diraviyam