Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Artemis集群中的brokerURL_Java_Activemq Artemis - Fatal编程技术网

Java Artemis集群中的brokerURL

Java Artemis集群中的brokerURL,java,activemq-artemis,Java,Activemq Artemis,我有一个Artemis代理集群,包含两个主代理和两个从代理。我试图通过编程方式将消息推送到这个集群。我知道,如果只有一个代理,那么要在ActiveMQConnectionFactory中设置的brokerUrl.setBrokerUrl(String brokerUrl)将是 tcp://10.10.100.217:61616. 现在,我有一个集群,有两个主代理和两个从代理,那么在这种情况下,代理是什么呢?broker.xml中的组地址是231.7.7.7。有几种方法可以解决这个问题 首先,您可

我有一个Artemis代理集群,包含两个主代理和两个从代理。我试图通过编程方式将消息推送到这个集群。我知道,如果只有一个代理,那么要在ActiveMQConnectionFactory中设置的brokerUrl.setBrokerUrl(String brokerUrl)将是 tcp://10.10.100.217:61616.


现在,我有一个集群,有两个主代理和两个从代理,那么在这种情况下,代理是什么呢?broker.xml中的组地址是231.7.7.7。

有几种方法可以解决这个问题

首先,您可以将所有主机和端口添加到URL,例如:

(tcp://master1:61616,tcp://slave1:61616,tcp://master2:61616,tcp://slave2:61616)
当核心客户机连接到主服务器时,它将自动收到任何备份的通知,但您不能保证其中一个预定义的主服务器将实际启动,因此只列出URL中的所有代理是最安全的

其次,您可以从客户端使用发现,例如:

udp://231.7.7.7:9876
在这里,客户机使用代理用来形成集群的相同UDP多播地址和端口。客户端将侦听此多播地址和端口,以发现哪些代理正在运行,然后连接到其中一个代理

当然,要使其正常工作,UDP多播数据包必须能够从代理到达客户端,这通常意味着它们必须位于同一网络子网上,因为UDP多播通常不会广播到该子网上