我们使用P2P模型部署了一个代理群集。数据在整个群集上传播。我们的许多消费者使用相同的地址"故障转移:(tcp:// ip1:61616,tcp:// ip2:61616 ,TCP:// IP3:61616,TCP:// IP4:61616,TCP:/ IP5:61616)nested.wireFormat.maxInactivityDuration = 1000"? 但最后,我们发现许多消费者将连接同一个经纪人,这使得不在经纪人身上的数据从其他经纪人那里转移。这种转移占用了很多带宽。 我怎样才能解决平衡问题?消费者如何决定使用哪个经纪人?
例如,我们有3个代理,并且所有代理都配置了以下代码段:
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximum
Connections=1000&wireFormat.maxFrameSize=104857600" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true" discoveryUri="multicast://default" />
</transportConnectors>
<networkConnectors>
<networkConnector uri="multicast://default"/>
</networkConnectors>
在消费者计划中,我使用&#34;故障转移:(tcp:// broker1:61616,tcp:// broker2:61616)?nested.wireFormat.maxInactivityDuration = 1000&#34;作为经纪人地址。 我运行了三个消费者进程,但发现所有三个进程最终都连接到broker1IP,这导致broker2中的数据,broker3被转移到broker1进行消费。 这会导致巨大的网络负担。
答案 0 :(得分:1)
我假设您正在为经纪人中的消息寻找负载均衡,您可以使用经纪人网络来解决问题,请查看此链接以获取更多信息http://activemq.apache.org/networks-of-brokers.html