Москитный огонь только один для каждой темы - PullRequest
0 голосов
/ 12 мая 2018

Я внедрил брокер сообщений MQTT, используя mosquitto в своей сети.У меня есть одно веб-приложение, публикующее данные для брокера, и несколько серверов, которые подписаны на одну и ту же тему.Итак, у меня есть сценарий избыточности.

Мой вопрос заключается в том, чтобы использовать только москита, можно ли настроить его так, чтобы он публиковал данные только по первому подписчику?В противном случае все они будут делать то же самое.

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Нет, в данный момент это невозможно с москитом (без связи между двумя подписчиками, как описано в другом ответе).

Для новой версии спецификации MQTT (v5) * существует новаяРежим называется «Общие подписки».Это позволяет нескольким клиентам подписываться на одну тему, и сообщения будут доставляться циклическим перебором каждому клиенту.Это больше для балансировки нагрузки, а не для отказа основного / подчиненного.

* Некоторые брокеры (HiveMQ, IBM MessageSight) уже поддерживают некоторую версию общих подписок в MQTT v3.1.1, но они реализуют ее внемного разные способы (разные префиксы тем), поэтому они не являются кросс-совместимыми.

0 голосов
/ 12 мая 2018

Я не думаю, что это возможно.

Но вы можете сделать это.

Пусть первая абонентская программа ответит подтверждением на канале, как только получит сообщение,и пусть программа резервирования ищет подтверждение в течение небольшого времени после исходного сообщения.

Если подтверждение получено, избыточность не должна ничего делать.

Так что, если первый подписчик получает и используетсообщение, остальные ничего не сделают, даже если получат сообщение.

...