Москитный мостик мост горизонтальное масштабирование
У меня есть один балансировщик нагрузки, т.е. aws elb, через который паб / саб будет приходить через этого elb два брокера от комаров A и брокер mosquitto B под elb один брокер от комаров для синхронизации темы между этими двумя брокерами (mosquitto.broker.sync)
ПОПРОБУЙ
так выглядит конфигурация для москитного брокера, который синхронизирует темы между узлами A и B
mosquitto.broker.sync: ##
connection mosquitto-bridge
try_private false
address mosquitto.broker.A:1883 mosquitto.broker.B:1883
start_type automatic
round_robin true
notifications true
topic # both 2 "" ""
Но это не работает, это только подключение к mosquitto.broker.A и не подключение к mosquitto.broker.B
ПОПРОБУЙТЕ ВТОРОЕ
отменить все попробовать в первую очередь
так что я попробовал это наоборот, удалил все настройки моста из mosquitto.broker.sync (просто чтобы избежать петель)
и добавил этот конфиг на узлы
mosquitto.broker.A: ##
connection mosquitto-bridge
try_private false
address mosquitto.broker.sync:1883
start_type automatic
round_robin true
notifications true
topic # both 2 "" ""
mosquitto.broker.B: ##
connection mosquitto-bridge
try_private false
address mosquitto.broker.sync:1883
start_type automatic
round_robin true
notifications true
topic # both 2 "" ""
mosquitto.broker.sync: ##
#connection mosquitto-bridge
#try_private false
#address mosquitto.broker.A:1883 mosquitto.broker.B:1883
#start_type automatic
#round_robin true
#notifications true
#topic # both 2 "" ""
Но в этом случае узел, на который я отправляю сообщение, дублируется над ним
1 ответ
Для первой попытки проблема заключается в том, что address
Поле представляет собой список брокеров, к которым нужно подключиться по порядку, а не список брокеров, к которым необходимо подключиться одновременно.
Как этот список интерпретируется, зависит от round_robin
установка.
Если установлено значение true, то брокер будет подключаться к первому в списке, а когда соединение разрывается, он будет пытаться следующим в списке, двигаясь вниз по списку при каждом повторном соединении.
Если установлено значение false, он будет подключаться к первому и обрабатывать это как предпочтительное соединение. Когда соединение обрывается, он попытается восстановить соединение, в случае неудачи он будет перемещаться вниз по списку, но периодически будет пытаться повторно подключиться к кулаку в списке.
Чтобы действительно решить вашу проблему, попробуйте что-то вроде этого:
mosquitto.broker.A
connection sync-a
try_private false
address mosquitto.broker.sync:1883
notifications true
topic # out 2 "" A/
topic # in 2 "" B/
mosquitto.broker.B
connection sync-b
try_private false
address mosquitto.broker.sync:1883
notifications true
topic # out 2 "" B/
topic # in 2 "" A/
И оставьте синхронизирующую машину как есть.
При этом используются префиксы тем, чтобы убедиться, что петли не образуются. Это также означает, что вы можете отслеживать, какой брокер делает что-либо на машине синхронизации, так как все темы имеют префикс машины, с которой они пришли.