IoT Core消息排序

0

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

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

profile picture
专家
已提问 5 个月前31 查看次数
1 回答
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
专家
已回答 5 个月前

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

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

回答问题的准则