Handling the IoT connection failure scenarios using MQTT

0

Hi, We are publishing the telemetry data to AWS IOT core every 1 sec from Raspberry Pi. We have a scenario where the connection failure due poor network or connection lost, the MQTT packets would be lost. We can use a queue mechanism for the lost data, and it resend to cloud when connection is restored. We have 2 questions:

  1. How to handle both the live data and resending of lost data at device and cloud side. Our purpose on cloud to show live dashboarding as well as to run analytics for older data.
  2. If connection issue is more than a day, how to manage the huge data (86440 records) and resend to cloud.

Just a note, we are not using any greengrass core for our application. Please suggest best way to handle these scenarios.

質問済み 1年前646ビュー
1回答
0

Hi. A single MQTT connection can support up to 100 publishes (sum of in an out) per second.

On the device side, one approach you can take is to maintain a message queue, as you said. Keep putting your new/live message at the head of the queue for immediate transmission and additionally publish up to 99 of the old messages per second. Potentially you can catch up on a day of messages in as little as 15 minutes. In practice it will be slower, because you have to be careful to not be throttled.

Do your messages contain a device timestamp and/or a sequence number? I think they will need to so that the cloud can distinguish live/new messages from old. That way only the new messages are directed to your live dashboarding.

profile pictureAWS
エキスパート
Greg_B
回答済み 1年前
  • Thanks, Greg, for the response. Yes, we are adding timestamp to the messages.

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ