Sí, Mosquitto admite múltiples corredores.
Mosquitto usa MQTT Bridges para conectar múltiples intermediarios y así enrutar mensajes entre estos intermediarios de mosquitto. De esta manera, se puede establecer un puente entre su agente principal y un sistema de reserva. Sin embargo, evita crear bucles. Si ambos corredores ejecutan sus clientes, publique en el corredor principal, que luego publica el tema para cada uno de los suscriptores, incluido el corredor secundario en puente. Si el primario falla, sus clientes lo notarán (Conexión rechazada, Servidor no disponible) y pueden retroceder para publicar directamente en el secundario. (Todavía no estoy seguro de cómo solucionarlo al revés). Como no espera que el cliente se desconecte sin gracia, creo que "Last Will and Testament" no se aplica aquí (se usaría para que el corredor notifique en nombre de un cliente desconectado).
Sin embargo, esta publicación enumera los inconvenientes de este enfoque, especialmente con respecto a la escalabilidad y disponibilidad:
- Los mecanismos de enrutamiento de puentes no se escalan bien si reenvía todos los mensajes a los otros puentes
- La sobrecarga de comunicación entre puentes es importante si está utilizando QoS 2 entre puentes (lo que debe hacer si desea propagar mensajes entre clientes que están conectados a diferentes puentes)
- No hay conmutación por error y alta disponibilidad. Si el puente de un agente se cae, los mensajes pueden perderse
- Los clientes MQTT no se pueden migrar a otros nodos de puente. Las sesiones MQTT no se replican a través de puentes, por lo que perderá todos sus mensajes y suscripciones en cola si está utilizando sesiones persistentes MQTT.