有什么方法可以在 2 个 MQTT 代理之间同步客户端状态

Is there any way can sync client state between 2 MQTT broker

您好,我正在 2 个独立的设备上构建 2 个 mosquitto MQTT 代理,中间设置了网桥。 并且两个代理都设置为可以存储消息的持久性。 假设经纪人 A 和经纪人 B。 当我将主题 A 上的消息发布到代理 A 时,当我在两个代理上订阅主题 A 时,我可以在两个代理上获得消息。 但现在我面临的是,当我在主题 A 上连续发布消息时,比如说 100 条消息,代理可以识别 1 个代理上的客户端状态,但不能同时识别两者。

例如:

clientid client1 的客户端订阅了 broker A 上的主题 A,它接收消息并在收到 50 条消息后停止脚本。当客户端重新启动脚本时,它会收到来自 51 的消息,并在收到消息 70 后再次停止。
然后客户端用clientid client1订阅broker B上的Topic A,它收到来自1的消息。

有什么方法可以在 2 个代理之间同步客户端状态?与上面的示例一样,客户端在代理 B 上订阅主题 A 时收到来自 71 的消息。

谢谢。

不,mosquitto 没有会话同步机制。

还有许多其他 MQTT 代理使用后端数据库存储会话信息,因此所有会话信息都在负载 balancing/HA 个代理之间共享。