Так, Mosquitto підтримує декількох брокерів.
Mosquitto використовує MQTT Bridges для з'єднання декількох посередників, таким чином, маршрутизуючи повідомлення між цими брокерами-комарами. Таким чином можна встановити міст між вашим основним брокером до резервної системи. Однак не створюйте циклів. Якщо обидва брокери працюють, ваші клієнти публікують у первинному брокері, який потім публікує тему кожному абоненту, включаючи мостовий вторинний брокер. Якщо первинне не вдається, ваші клієнти відзначають (З'єднання відмовлено, сервер недоступний) і можуть резервно опублікувати безпосередньо в другорядних. (Я ще не впевнений, як це виправити навпаки.) Оскільки ви не очікуєте, що клієнт буде несанкціоновано відключитись, я думаю, що "Остання воля та заповіт" тут не застосовуються (це використовувалося б для того, щоб повідомляти брокера від імені відключеного клієнта).
Однак у цій публікації перелічені недоліки такого підходу, особливо щодо масштабованості та доступності:
- Механізми маршрутизації мосту не мають масштабування, якщо ви пересилаєте всі повідомлення на інші мости
- Частка зв'язку між мостами є важливою, якщо ви використовуєте QoS 2 між мостами (що вам потрібно зробити, якщо ви хочете поширювати повідомлення між клієнтами, підключеними до різних мостів)
- Немає відмови та високої доступності. Якщо брокерський міст провалиться, повідомлення можуть загубитися
- Клієнти MQTT не можуть бути переміщені до інших вузлів мосту. Сеанси MQTT не копіюються через мости, тому ви втратите всі свої повідомлення в черзі та підписки, якщо будете використовувати постійні сеанси MQTT.