【发布时间】:2014-08-03 18:18:17
【问题描述】:
我知道有很多关于 AMQ 集群的信息,但我不知道如何设置它.. 我需要一个负载平衡集群,有两台机器,每台机器上有两个实例,如 192.168.0.1 (instance1,instance2) 192.168.0.2(instance3,instance4)。 我的 openwire 端口是 0.0.0.0:61617 - 0.0.0.0:61620。 在互联网上找到了一些解决方案,例如:
实例1
<networkConnectors>
<networkConnector name="instance1-instance3-instance4" uri="masterslave:(tcp://192.168.0.2:61619,tcp://192.168.0.2:61620)" />
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb1" />
</persistenceAdapter>
实例2:
<networkConnectors>
<networkConnector name="instance2-instance3-instance4" uri="masterslave:(tcp://192.168.0.2:61619,tcp://192.168.0.2:61620)" />
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb1" />
</persistenceAdapter>
实例3:
<networkConnectors>
<networkConnector name="instance3-instance1-instance2" uri="masterslave:(tcp://192.168.0.1:61617,tcp://192.168.0.1:61618)" />
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb2" />
</persistenceAdapter>
实例4:
<networkConnectors>
<networkConnector name="instance4-instance1-instance2" uri="masterslave:(tcp://192.168.0.1:61617,tcp://192.168.0.1:61618)" />
<networkConnector name="FAILOVER"
uri="static:(failover:(tcp://192.168.0.1:61617,tcp://192.168.0.2:61619,tcp://192.168.0.1:61618,tcp://192.168.0.2:61620))?randomize=false"
dynamicOnly="true"
networkTTL="4"
duplex="true"/>
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb2" />
</persistenceAdapter>
它可以工作,相互连接,当一个节点出现故障时,instance4 会使用此故障转移字符串重新连接到另一个节点。但我不知道它工作正常还是不起作用,请告诉我? 也许有人制作了LB集群并可以提供xml文件?拜托。对不起,如果我的英语不太好。我来自其他国家)
【问题讨论】:
-
有点不清楚你在问什么
-
我无法理解我的第一条消息中的代理网络是如何工作的。它是否平衡消息,我该如何测试它:) 对不起我的英语
-
这完全取决于消费者。如果 broker1 和 broker2 在代理网络中连接 - 如果 broker2 有连接的消费者并且 broker1 有消息(在特定目标上),消息将从 broker1 流向 broker2。特定队列上的多个消费者之间的负载平衡将发生在代理网络中,就像在具有多个消费者的单个代理上一样。
-
好的,我明白了,非常感谢。
-
为什么当我连接客户端时,只有第一个代理收到消息?消费者-Durl=failover:(tcp://192.168.0.1:61617,tcp://192.168.0.2:61619,tcp://192.168.0.1:61618,tcp://192.168.0.2:61620)?randomize=两个代理上的虚假消费者数量均为 1。如果consumer -Durl=failover:(tcp://192.168.0.2:61619,tcp://192.168.0.1:61618,tcp://192.168.0.2:61620)?randomize=false (没有第一个地址,然后负载均衡工作正常)。
标签: activemq cluster-computing load-balancing