gpt4 book ai didi

MQTT Broker Bridge 数据持久化

转载 作者:行者123 更新时间:2023-12-01 08:27:00 25 4
gpt4 key购买 nike

我们在位置 A 有 Mosquito 代理,而 Rabbit MQ 在云中。我们已经连接了两个经纪人。来自 Mosquito 中配置的 Topic 的数据将在 Rabbit MQ 中的 AMQ.Topic 中发布。

如果连接丢失,Mosquito 代理中可用的数据将在重新建立连接后传递。

在开发此类解决方案时,我们应该牢记哪些事情?

最佳答案

这取决于您如何配置网桥。

一般来说,MQTT 客户端有两种类型,耐用 /执着 非耐用 /非持久性 .这是使用 控制的清洁 session 连接时的标志。

持久/持久的客户

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

默认情况下,根据 MQTT 规范,如果订阅和消息都使用大于 0 的 QoS,消息只会为断开连接的持久客户端排队。Mosquitto 提供了对所有消息进行排队的能力,但这不在规范,因此您不能将其依赖于其他经纪人。

还有其他警告 - 只有有限数量的消息将排队等待离线客户端。这可以使用 max_queued_messages 在 mosquitto 上进行配置选项。

非持久/非持久客户端

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

如果客户端连接为持久,然后重新连接为非持久,那么一旦非持久版本连接,所有存储的信息将被删除。

桥梁

相同的原则适用于网桥,因此您需要将网桥配置为持久的(清除 session 0),并为您的消息使用 QoS>0。您还需要确保最大排队消息适合您的需要。

关于MQTT Broker Bridge 数据持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com