微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Broker收到消息后,MQTT Broker中的回滚功能

如何解决从Broker收到消息后,MQTT Broker中的回滚功能

我从MQTT broker收到消息一旦出现,在处理数据期间,假定DB已关闭并且未完成任务。在这种特殊情况下,收到的数据必须发回给broker,说明我的任务尚未完成,我的意思是回滚。

如何实现此目标以及如何告诉代理在处理数据期间出现一些异常,您需要再次发送数据。

可以帮忙吗?

解决方法

这是可以完成的,但是只能使用某些MQTT客户端库来完成,该库使您能够完全控制QOS握手过程。

假定客户端已在QOS 1或2上订阅了某个主题,则可以选择暂停将PUBACK或PUBREC数据包发送回代理的过程。它可以推迟完成QOS握手,直到消息已被完全处理。如果处理失败且未完成完整的握手,则代理将尝试再次将消息重新传递给客户端,以便在失败的情况下客户端应脱机,以便中断将消息排队。

当后端(数据存储)重新联机时,客户端可以重新连接到代理,并且排队的消息将重新发送。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。