当前位置: 代码迷 >> java >> 与Windows相比,ActiveMQ FailoverTransport在Linux上重新连接的速度太快
  详细解决方案

与Windows相比,ActiveMQ FailoverTransport在Linux上重新连接的速度太快

热度:145   发布时间:2023-07-27 09:36:52.0

我的Linux机器上有一个ActiveMQ代理,还有一个独立的Java应用程序,它充当Windows机器上运行的生产者。 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 Task-1](FailoverTransport.java:1099)CSN:1次尝试后无法连接到[tcp://10.0.112.49:61616]

这是预期的行为。

但是,当我在Linux上运行该应用程序时,它不是每秒钟重新连接一次,而是每5-10毫秒重新连接一次! 我想知道为什么行为不同。

您的问题是您不了解timeout选项。 这是说的

暂停

启用发送操作超时(以毫秒为单位),而不会中断重新连接过程

但是,在我认为它描述得更好(但仍然相同)。

暂停

如果发送被阻止等待失败的连接以重新连接,则发送失败之前应等待多长时间,默认值为永远(-1)。

如果我了解您,则所需的选项是initialReconnectDelaymaxReconnectDelayuseExponentialBackOff

也可以看看:

  相关解决方案