我們有兩個activemq實例配置爲一個集羣和一個四個glassfish實例的集羣,在任何給定時間都應該連接到一個activemq。如果activemq01不可用,則所有四個glassfish實例都應在activemq02上進行故障轉移。activeMQ多個消費者問題
我注意到了幾次,出於不明原因,其中一個(隨機)glassfish實例將在activemq02上進行故障轉移,其餘三個實例仍將連接到activemq01,即使activemq01未關閉,並且所有glassfish實例應該一直在收聽activemq01。
日誌沒有指出任何可以解釋這種行爲的東西,只有那一個glassfish實例無法連接到activemq01和activemq02上的故障轉移才能看到。
有沒有人遇到過相同或類似的問題?任何幫助/意見,不勝感激。
這裏是我的ActiveMQ CONFIGS:
activemq01:
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-豆類,2.0.XSD http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd「>
文件:$ {} activemq.base /conf/credentials.properties
<managementContext>
<managementContext connectorPort="1093" createConnector="true"/>
</managementContext>
<networkConnectors>
<networkConnector name="amq-prod" uri="static://(tcp://127.0.0.1:61616,tcp://192.168.0.167:61616)" />
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
<plugins>
<loggingBrokerPlugin logAll="false" logConnectionEvents="true"/>
</plugins>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="2048 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="2 gb" name="prod"/>
</storeUsage>
<tempUsage>
<tempUsage limit="2000 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616" updateClusterClients="true" />
</transportConnectors>
#
activeMQ02:
http://www.springframework.org/schema/beans http://www.springframework.org/ schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd「>
文件:$ {} activemq.base /conf/credentials.properties
<managementContext>
<managementContext connectorPort="1093" createConnector="true"/>
</managementContext>
<networkConnectors>
<networkConnector name="amq-prod" uri="static://(tcp://127.0.0.1:61616,tcp://192.168.0.166:61616)" />
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="2048 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="2 gb" name="prod"/>
</storeUsage>
<tempUsage>
<tempUsage limit="2000 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616" updateClusterClients="true" />
</transportConnectors>
activeMQ版本 - 5.4。1
謝謝Anubhava!這個配置的問題是,當我停止activemq01時,activemq02上的連接失敗,但是當我嘗試啓動activemq01並停止activemq02時,消費者沒有故障恢復到activemq01。 – Nerses 2011-04-15 16:59:06
我的待處理隊列一直在堆疊,我花了很多時間研究和調整設置,並不確定發生了什麼。這隻發生在一個隊列中。只是爲了給你一些內部的信息,以防你可以建議通過一些配置改變來提高性能: – Nerses 2011-04-15 17:01:29
生產者將消息對象放入隊列中,隊列中有幾十個單獨的聯繫人,然後消費者(4)監聽隊列,並選擇消息(對象),解析並提交給移除供應商,當時是一個聯繫人。據瞭解,供應商交付的性能很慢,您認爲如果我增加該隊列的預取大小(當前是100),它會糾正問題,並且消息不會堆棧在待處理隊列中?預先感謝您 – Nerses 2011-04-15 17:04:50