小弟配置了一個ActiveMQ集群,每個節點的配置如下:
<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>
也即:節點與節點之間的連接關系可以通過動態查找演算法確定,然后生產者或者消費者連接節點的時候的地址串列也會動態得到更新。
現在遇到了一個問題,就是在某些情況下,所有的消費者都連向了同一個節點,這就導致了不在該節點上的資料都被傳送到該節點,這對網路造成了一定的壓力。
請教大家,怎么解決這個問題,ActiveMQ選擇節點地址不是隨機的嗎?怎么會出現這種情況?如果ActiveMQ不能解決這個問題,有什么其他的替代的中間件可使用解決這個問題呢?謝謝
uj5u.com熱心網友回復:
應該能夠指定目標服務器(一個或者多個)去發送訊息。如果做不到這一點,那么就從底層框架上重新選型吧。uj5u.com熱心網友回復:
恩,有什么好的底層框架可以推薦,試過Kafka不能滿足要求uj5u.com熱心網友回復:
在下按照樓主的方式,在兩臺MQ上做的動態集群配置,BK1先啟動,然后BK2再啟動, 我生產者連BK1,消費連BK2,但是broke2接收不到訊息。請問發送端和接受端的uri有什么特殊的配置嗎?uj5u.com熱心網友回復:
1、確定你的集群不是主從架構嗎?主的掛掉,才會自動切換到從2、每個mq的后臺管理頁面都能打開嗎?
uj5u.com熱心網友回復:
應該能夠指定目標服務器(一個或者多個)去發送訊息。如果做不到這一點,那么就從底層框架上重新選型吧。轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/16805.html
標籤:中間件
上一篇:尋人貼!王老師,我欠您句感謝
