Tak, Mosquitto obsługuje wielu brokerów.
Mosquitto wykorzystuje mosty MQTT do łączenia wielu brokerów, a tym samym routingu wiadomości między tymi brokerami. W ten sposób można ustanowić pomost między głównym brokerem a systemem rezerwowym. Unikaj tworzenia pętli. Jeśli obaj brokerzy uruchamiają klientów, publikuj je w głównym brokerze, który następnie publikuje ten temat każdemu subskrybentowi, w tym pośredniczącemu pośrednikowi. Jeśli podstawowy nie powiedzie się, Twoi klienci zauważą (Odmowa połączenia, Serwer niedostępny) i mogą wrócić do bezpośredniego publikowania na dodatkowym. (Nie jestem jeszcze pewien, jak to naprawić na odwrót.) Ponieważ nie spodziewasz się, że klient rozłączy się w niełaskawy sposób, myślę, że nie ma tu zastosowania „Ostatnia wola i testament” (byłoby to konieczne, aby powiadomić brokera w imieniu rozłączonego klienta).
W tym poście wymieniono jednak wady tego podejścia, zwłaszcza w odniesieniu do skalowalności i dostępności:
- Mechanizmy routingu mostów nie skalują się dobrze, jeśli przekazujesz wszystkie wiadomości do innych mostów
- Narzut komunikacyjny między mostami jest znaczący, jeśli używasz QoS 2 między mostami (co musisz zrobić, jeśli chcesz propagować wiadomości między klientami podłączonymi do różnych mostów)
- Brak przełączania awaryjnego i wysokiej dostępności. W przypadku awarii mostu brokera wiadomości mogą zostać utracone
- Klientów MQTT nie można migrować do innych węzłów mostu. Sesje MQTT nie są replikowane między mostami, więc jeśli używasz trwałych sesji MQTT, stracisz wszystkie swoje kolejkowane wiadomości i subskrypcje.