Обработка обратной передачи данных в клиенте mqtt

На нашем облачном сервере установлен москитный брокер. Наш шлюз отправляет данные с помощью клиента MQTT с сигналом 2G. Мы наблюдаем потерю данных в нескольких сценариях.

Когда шлюз отключен от Интернета, мы помещаем сообщения в шлюз на несколько дней. Когда он снова попадает в Интернет, он начинает передавать данные в брокер с двумя потоками: один - для сообщений в реальном времени, другой - для сообщений в очереди. Мы получаем ACK обратного вызова для каждого сообщения, но мы теряем некоторые сообщения на стороне сервера.

  1. Как мы можем быть уверены, что все созданные сообщения будут обработаны в брокере?

  2. Как мы обрабатываем посылку сообщений в шлюзе? Один из вариантов - задержать отправку каждого сообщения в очереди на несколько миллисекунд (чтобы избежать того, чтобы все они пытались связаться с брокером сразу.

Мы используем уровень QoS 1 для нашего издателя / подписчика и хотим продолжать использовать уровень QoS 1.

0 ответов

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