我的Linux机器上有一个ActiveMQ代理,还有一个独立的应用程序,它作为一个在我的机器上运行的生产者。Windows和Linux机器都使用相同版本的Java 7。
我指定我的经纪人网址为:
failover://(tcp://10.0.112.49:61616)?timeout=1000&warnAfterReconnectAttempts=1&maxReconnectAttempts=0`Windows场景:我启动我的应用程序,它会自动连接到ActiveMQ代理。当我停止代理时,FailoverTransport每秒钟都尝试重新连接。
2015-07-16 15:14:52,737错误ActiveMQ任务-1 CSN:未能连接到tcp://10.0.112.49:61616后:1次尝试
这是预期的行为。
但是,当我在Linux上运行应用程序时,它不是每秒钟重新连接一次,而是每5-10毫秒重新连接一次!我想知道为什么这种行为是不同的。
发布于 2015-07-17 04:12:47
您的问题是您不理解timeout选项。以下是文档所说的
超时 启用发送操作的超时(毫秒),而不中断重新连接过程
然而,在配置ActiveMQ中,我认为它描述得更好(但仍然一样)。
超时 如果一个发送被阻塞,等待一个失败的连接重新连接它应该等待多长时间才能失败发送,默认是永远(-1)。
如果我理解你的话,你想要的选项是initialReconnectDelay,maxReconnectDelay和useExponentialBackOff。
另请参阅:
https://stackoverflow.com/questions/31465758
复制相似问题