首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们能否在用户端维护AWS-IoT中的消息顺序?

我们能否在用户端维护AWS-IoT中的消息顺序?
EN

Stack Overflow用户
提问于 2017-10-04 14:54:09
回答 3查看 742关注 0票数 3

我们已经使用AWS-IoT服务创建了一个东西。我们已经在这个特定的东西中创建了一个主题。订阅者已经订阅了该主题,并且发布者正在向该主题发送消息。

以下是发布者消息传递顺序:

代码语言:javascript
运行
复制
message 0
message 1
message 2
message 3
message 4 

在用户端,不保持消息序列。它是这样显示的:

代码语言:javascript
运行
复制
message 0
message 1
message 4
message 2
message 3
EN

回答 3

Stack Overflow用户

发布于 2020-02-22 18:16:43

没错,在亚马逊网络服务IoT中,message broker does not guarantee order在向设备传递消息的同时,也会向设备发送消息。

原因是在典型的分布式系统体系结构中,从发布者到订阅者的单个消息应该采用多个路径,以确保系统的高可用性和可伸缩性。在亚马逊网络服务IoT的情况下,设备网关支持发布者和订阅者消息传递模式,并支持可扩展、低延迟和低开销的通信。

但是,根据用例的类型,可以找到许多可能的解决方案。应该有一个逻辑,让出版商自己来协调。一种通用或简单的方法可以是设备侧的序列号添加应当足以处理发布者和订阅者之间的消息排序。在接收器上,基于对基于序列号的排序的检查来处理或丢弃的逻辑应该是有用的。

票数 2
EN

Stack Overflow用户

发布于 2019-01-09 20:15:00

正如在documentation of AWS中编写的

message broker不保证接收消息和确认的顺序。

票数 0
EN

Stack Overflow用户

发布于 2020-02-20 13:22:54

我想现在回答这个问题已经太晚了,但我仍然会继续下去,这样其他面临这个问题的人就可以有一个变通的办法。我遇到了类似的情况,我做了以下操作,以确保顺序得到维护。

  1. I将序列ID或时间戳添加到从我的iot设备(可以是任何类型的客户端)发送到代理的有效负载中。
  2. I然后配置IoT规则引擎(添加操作),将消息直接发送到DynamoDB,其中数据以排序的方式自动存储(需要配置为按seqID排序)。
  3. 然后我使用Lambda从DynamoDB中提取数据,用于我的进一步工作流程,但您可以根据您的需要使用任何服务。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46558714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档