Я написал несколько сервисов на C ++ с клиентом MQTT. На основе сообщения, полученного в теме MQTT, служба c ++ выполнит некоторые действия, такие как отправка сообщения MQTT в другую тему или сохранение сообщения в базе данных и т. Д.
Я установил несколько брокеров MQTT на докерах и подключил эти брокеры MQTT к балансировщику нагрузки высокой доступности. Все эти брокеры MQTT также объединились в кластеры.
Итак, если к клиенту 1 подключен брокер-1 (через балансировщик нагрузки), он может отправить сообщение клиенту x, подключенному брокеру -x. Из-за кластеризации брокеров MQTT.
Итак, как я могу установить балансировщик нагрузки для моих служб c ++ с HA или аналогичными балансировщиками нагрузки?
Обновлять:
В случае API HTTP / REST запрос будет передан только одному веб-приложению в любой момент времени. Но в случае MQTT сообщение будет опубликовано, и если я запустил несколько служб C ++ для Same ABC, то все службы обработают это сообщение. Как мне сделать так, чтобы сообщение обрабатывала только одна служба. Я хочу установить высокую доступность для службы C ++