Перезагрузка сервера с сервисом MQTT - PullRequest
0 голосов
/ 28 сентября 2018

Представьте себе брокера MQTT с подключенными удаленными клиентами, которые непрерывно отправляют данные QoS 2 - стандартная ситуация.Для клиентов настроено «cleansession false» - у них есть очередь для отправки сообщений в случае сбоя соединения.

На сервере локальные клиенты подписываются на темы для получения сообщений.

Загрузка сервера:

  1. Запустить MQTT Broker
  2. Запуск локальных клиентов
  3. Подключение удаленных клиентов и получение данных из очереди

Что еслитретий пункт встречается раньше второго?Есть ли стандартные решения?Как не потерять первые сообщения?

1 Ответ

0 голосов
/ 28 сентября 2018

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

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

...