На нашем облачном сервере установлен москитный брокер.Наш шлюз отправляет данные с помощью клиента MQTT с сигналом 2G.Мы наблюдаем потерю данных в нескольких сценариях.
Когда шлюз отключен от Интернета, мы помещаем сообщения в шлюз на несколько дней.Когда он снова достигает интернета, он начинает передавать данные в брокер с двумя потоками: один - для сообщений в реальном времени, другой - для сообщений в очереди.Мы получаем ACK обратного вызова для каждого сообщения, но мы теряем некоторые сообщения на стороне сервера.
Как мы гарантируем, что все произведенные сообщения будут обработаны вброкер?
Как мы обрабатываем пакет сообщений в шлюзе? Один из вариантов - задержать отправку каждого сообщения в очереди на несколько миллисекунд(чтобы все они не пытались связаться с брокером сразу.
Мы используем уровень QoS 1 для нашего издателя / подписчика и хотим продолжать использовать уровень QoS 1.