IoT Core消息排序

0

【以下的问题经过翻译处理】 我正在开展一项需要消息顺序的物联网项目,例如监测大楼里的电梯。当电梯从第一层到第十层移动时,需要接收到每个楼层的MQTT消息。

目前的问题是:如果代理基于ACK无法保证消息序列,那么我的模拟/消费者可能会获得1、2、3、[9]、4、5、6、7、8、10等楼层数。因此,这种情况下无法进行实时监测。如果是这种情况,有哪些好的IoT Core的替代解决方案?可以直接使用Amazon Kinesis Data Streams还是其他替代方案?

profile picture
EXPERTE
gefragt vor 6 Monaten35 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 解决方案取决于消费者愿意等待多久才能接收到乱序消息。例如,在电梯示例中,如果电梯从1楼移动到5楼,消费者接收到事件1、2、3、5....1个小时...4,您是否愿意等待1个小时才能解决消息4卡住的问题并继续处理消息5?

建议开发一个可以处理乱序消息的消费者,这可以使解决方案更加稳健。

尽管如此,如果客户端使用QoS1,事件之间间隔较长(在电梯示例中数秒钟),从一个电梯得到乱序消息的机会就非常低。如果在设备端的消息负载中添加一些序列号 {floor:one, seq:100}, {floor:two, seq:101}, {floor:three, seq:102}, {floor:five, seq:104},就可以在消费者端检测到乱序消息并触发异常逻辑。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen