首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQTT Broker桥接数据持久性

MQTT Broker桥接数据持久性
EN

Stack Overflow用户
提问于 2015-08-13 05:29:29
回答 1查看 8.2K关注 0票数 4

我们在A位置有蚊子经纪人,而兔子MQ在云中。我们已经把两位经纪人联系起来了。来自在Mosquito中配置的主题的数据将在兔子MQ中的AMQ.Topic中发布。

如果失去连通性,在重新建立连接后,蚊子经纪人提供的数据是否会被传递。

在制定这样的解决方案时,我们应该牢记些什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-13 08:07:49

这取决于如何配置桥接器。

一般来说,MQTT客户机有两种类型,durable/persistentnon-durable/non-persistent.。这是在连接时使用干净会话标志来控制的。

持久/持久客户端

当持久客户端连接(干净会话设置为0)时,代理将在断开连接后维护有关该客户端的信息。这意味着对该客户端的订阅,可能意味着当它重新连接时(使用相同的客户端id!)准备交付的消息!

默认情况下,根据MQTT规范,只有当订阅和消息都使用大于0的QoS时,消息才会排队等待断开连接的持久客户端。Mosquitto提供了对所有消息进行排队的功能,但是规范中没有涉及到这一点,因此您不能依赖于其他代理程序。

还有其他的注意事项--只有有限数量的消息将排队等待脱机客户端。这可以配置在使用max_queued_messages选项的蚊子上。

非持久/非持久客户端

当非持久客户端(干净会话设置为1)连接时,服务器在断开连接后将不会保留有关该客户端的任何信息。

如果客户端连接为持久的,则重新连接为非持久的,则所有存储的信息将在非持久版本连接后立即删除。

桥梁

同样的原则也适用于桥接器,因此您需要将桥配置为持久的(干净会话0),并对消息使用QoS>0。您还需要确保最大排队的消息适合您的需要。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31980126

复制
相关文章

相似问题

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