Ja, Mosquitto unterstützt mehrere Broker.
Mosquitto verwendet MQTT Bridges , um mehrere Broker zu verbinden und Nachrichten zwischen diesen Brokern weiterzuleiten. Auf diese Weise kann eine Brücke zwischen Ihrem primären Broker und einem Fallback-System hergestellt werden. Vermeiden Sie es jedoch, Loops zu erstellen. Wenn beide Broker ausgeführt werden, veröffentlichen Ihre Kunden sie beim primären Broker, der das Thema dann für jeden Abonnenten einschließlich des überbrückten sekundären Brokers veröffentlicht. Wenn der primäre Server ausfällt, stellen Ihre Clients fest (Verbindung abgelehnt, Server nicht verfügbar) und können auf den sekundären Server zurückgreifen, um ihn direkt zu veröffentlichen. (Ich bin mir noch nicht sicher, wie ich es andersherum beheben soll.) Da Sie nicht erwarten, dass der Client die Verbindung unanständig trennt, denke ich, dass "Last Will and Testament" hier nicht zutrifft im Namen eines getrennten Clients).
In diesem Beitrag werden jedoch die Nachteile dieses Ansatzes aufgeführt, insbesondere in Bezug auf Skalierbarkeit und Verfügbarkeit:
- Die Bridge-Routing-Mechanismen lassen sich nicht gut skalieren, wenn Sie alle Nachrichten an die anderen Bridges weiterleiten
- Der Kommunikationsaufwand zwischen Bridges ist erheblich, wenn Sie QoS 2 zwischen Bridges verwenden (was Sie tun müssen, wenn Sie Nachrichten zwischen Clients verbreiten möchten, die mit verschiedenen Bridges verbunden sind).
- Es gibt kein Failover und keine hohe Verfügbarkeit. Wenn eine Broker-Bridge abstürzt, können Nachrichten verloren gehen
- MQTT-Clients können nicht auf andere Brückenknoten migriert werden. MQTT-Sitzungen werden nicht über Bridges repliziert, sodass Sie alle Nachrichten und Abonnements in der Warteschlange verlieren, wenn Sie persistente MQTT-Sitzungen verwenden.