我們已經部署了一個使用P2P模型的代理集羣。數據遍佈整個集羣。我們的許多客戶使用相同的地址「故障轉移:(tcp:// ip1:61616,tcp:// ip2:61616,tcp:/ /ip3:61616,tcp://ip4:61616,tcp:/ip5:61616)?nested.wireFormat.maxInactivityDuration=1000「 。但最後,我們發現很多消費者會連接相同的代理,從而導致數據不可用經紀人從其他經紀人轉移。這種轉移佔用帶寬很多。 我該如何解決平衡問題?以及消費者如何決定使用哪家經紀商?如何避免連接到ActiveMQ中的一個代理?
例如,我們有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>
在消費計劃,我使用「故障恢復:(TCP:// BROKER1:61616,TCP:// broker2:61616)?nested.wireFormat.maxInactivityDuration = 1000「作爲代理地址。 我運行三個使用者進程,但發現所有三個進程最終連接到broker1IP,這導致broker2和broker3中的數據被轉移到broker1進行使用。 這會導致巨大的網絡負擔。
我已經閱讀文檔,但沒有找到一個解決方案。我更新了我的問題描述以更清楚地說明我的問題。謝謝。 – user2351281
使用發現協議連接到代理而不是故障轉移,可以在http://activemq.apache.org/discovery-transport-reference.html找到解釋。 – Sundar