guaranteed delivery of events with intermittently offline Device

0

I have a GreenGrass device that can be intermittently offline, and I would like to inform the server of important events that happen.

Is there a message queuing system I can use within GreenGrass where I publish the event locally and whenever the Device is re-connected it will deliver this message.

Can I use IoT-Core for this ? Will it allow me to publish multiple messages to a topic and will they all get cached until delivery, and they arrive in the same order that they were sent with ?

Does it have a 'save to disk' option so it will retain the messages for delivery even in-between reboots ?

clogwog
已提问 2 年前558 查看次数
1 回答
0
已接受的回答

There is an MQTT spooler, but it's presently an in-memory spooler.

https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html

spooler (Optional) The MQTT spooler configuration for the Greengrass core device. This object contains the following information:

maxSizeInBytes (Optional) The maximum size of the cache where the core device stores unprocessed MQTT messages in memory. If the cache is full, the core device discards the oldest messages to add new messages.

Default: 2621440 (2.5 MB)

keepQos0WhenOffline (Optional) You can spool MQTT QoS 0 messages that the core device receives while its offline. If you set this option to true, the core device spools QoS 0 messages that it can't send while it's offline. If you set this option to false, the core device discards these messages. The core device always spools QoS 1 messages unless the spool is full.

Default: false

You can see some discussion about a persistent spooler here: https://github.com/aws-greengrass/aws-greengrass-nucleus/issues/825

profile pictureAWS
专家
Greg_B
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则