Москитный мостик мост горизонтальное масштабирование

У меня есть один балансировщик нагрузки, т.е. 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/

И оставьте синхронизирующую машину как есть.

При этом используются префиксы тем, чтобы убедиться, что петли не образуются. Это также означает, что вы можете отслеживать, какой брокер делает что-либо на машине синхронизации, так как все темы имеют префикс машины, с которой они пришли.

Другие вопросы по тегам