2017-04-18 45 views
0

最近我們一直面臨着activemq的一些問題。生產者能夠連接到代理,但是當我們發送消息時,生產者線程被阻塞。客戶端/生產者既不超時也不拋出異常。我想知道如果我們可以添加任何參數到故障轉移配置故障轉移:(tcp:// localhost:61616,tcp://srv01.abc.com:61616),以便如果客戶端主服務器超時,該消息可以重定向到故障轉移mq代理。如果有人能在這方面幫助我,那將會很棒。阻止生產者在活躍的mq

回答

0

所以對於故障轉移運輸:

maxReconnectAttempts:默認值= -1 | 0

從ActiveMQ 5.6:默認爲 -1,永久重試。 0意味着禁用重新連接,例如:只是嘗試連接一次。 之前ActiveMQ 5.6:默認爲0,永久重試。所有 ActiveMQ版本:值> 0表示錯誤發送回客戶端之前嘗試重新連接的最大次數 。

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("failover:(tcp://localhost:61616,tcp://srv01.abc.com:61616)?randomize=false&maxReconnectAttempts=Value&trackMessages=true") 

所有故障轉移運輸選項可以在URL的快速回答哈桑設置

http://activemq.apache.org/failover-transport-reference.html

+0

感謝。想知道是否需要設置maxReconnectDelay,並且maxReconnectAttempts屬性是否負責將請求重定向到故障轉移節點,如果重新連接嘗試在主節點上耗盡的話? – user2006623

+0

maxReconnectAttempts是所有故障轉移網址的最大值,FailoverTransport自動嘗試連接到url的一個接一個,如果它無法成功連接到一個url,他會嘗試下一個url,這整個過程等於maxReconnectAttempts的「嘗試」1 –

+0

如果節點上的嘗試失敗,FailoverTransport始終負責將請求重定向到故障轉移節點 –

相關問題