2017-04-18 60 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始终负责将请求重定向到故障转移节点 –