我使用Apache Artemis作为我的mqtt经纪人。我有一个Artemis集群,它以主从方式配置。当主服务器发生故障时,备用服务器将接管服务器,并且客户端必须连接到从服务器。主服务器和从服务器具有不同的IP。

在eclipse paho中创建MqttClient对象时,是否可以指定多个连接url(主从地址)?

就像是

MqttClient cl = new MqttClient("LIST OF IPs", "Publisher", new
MemoryPersistence());


而不只是

MqttClient cl = new MqttClient("tcp://localhost:1883", "Publisher", new
MemoryPersistence());


这样,当与第一个地址的连接失败时,将尝试与下一个地址的连接。

有人可以指导吗?非常感激。

最佳答案

多种语言的客户端库都具有此选项。可以在这里检查列表:
https://www.eclipse.org/paho/downloads.php

对于那些标记有“高可用性”的客户端,请使用“ MqttConnectOptions”指定支持的URL列表。

例:

        String[] URIs = {"address1","address2"};
        MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
        mqttConnectOptions.setServerURIs(URIs);

10-06 13:07