Eclipse paho 连接到分布式代理
Eclipse paho connecting to distributed broker
我正在使用 Apache Artemis 作为我的 mqtt 代理。我有一个以主从方式配置的 Artemis 集群。当主服务器发生故障时,备份服务器接管,客户端必须连接到从服务器。 Master 和 slave 的 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());
这样当与第一个地址的连接失败时,将尝试连接到下一个地址。
有人可以指导一下吗?非常感谢。
只需尝试连接到主服务器,用适当的错误处理包围调用。如果超时或连接错误,只需在处理程序中使用代码来调用 slave。如果那里也没有响应,请退出并假设链条已断开。
集群也可以使用不同的配置来仅公开一个 IP,这更有意义。因此,这里有一个别名队列面向外,但在集群中的不同机器上是逻辑队列。如果您想向外部分配连接到集群的可能性,这将在以后帮助您。
许多语言的客户端库都有这个选项。可以在此处查看该列表:
https://www.eclipse.org/paho/downloads.php
对于标记为 "high-availability" 的客户端,支持使用 "MqttConnectOptions".
指定的 url 列表
示例:
String[] URIs = {"address1","address2"};
MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
mqttConnectOptions.setServerURIs(URIs);
我正在使用 Apache Artemis 作为我的 mqtt 代理。我有一个以主从方式配置的 Artemis 集群。当主服务器发生故障时,备份服务器接管,客户端必须连接到从服务器。 Master 和 slave 的 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());
这样当与第一个地址的连接失败时,将尝试连接到下一个地址。
有人可以指导一下吗?非常感谢。
只需尝试连接到主服务器,用适当的错误处理包围调用。如果超时或连接错误,只需在处理程序中使用代码来调用 slave。如果那里也没有响应,请退出并假设链条已断开。
集群也可以使用不同的配置来仅公开一个 IP,这更有意义。因此,这里有一个别名队列面向外,但在集群中的不同机器上是逻辑队列。如果您想向外部分配连接到集群的可能性,这将在以后帮助您。
许多语言的客户端库都有这个选项。可以在此处查看该列表: https://www.eclipse.org/paho/downloads.php
对于标记为 "high-availability" 的客户端,支持使用 "MqttConnectOptions".
指定的 url 列表示例:
String[] URIs = {"address1","address2"};
MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
mqttConnectOptions.setServerURIs(URIs);