【问题标题】:Connection stall when addressing unknown server ActiveMQ寻址未知服务器 ActiveMQ 时连接停止
【发布时间】:2013-01-21 10:08:53
【问题描述】:

我在 Java 中使用 ActiveMQ 和 JMS。

当我使用这个 url 发送消息时:

"failover:(tcp://host:61616)?connection.sendTimeout=1000&startupMaxReconnectAttempts=1"

只要“主机”是一个已知的服务器,我可以在其中连接,当然还有一个 ActiveMQ,一切都可以正常工作。

问题是当我尝试向与我没有关系的未知服务器发送消息时 - 没有连接,发送会停止相当长的时间。

我想配置 url,这样就不会发生这种停顿。我尝试了示例中所示的超时,但它不起作用。我也尝试了 soConnectionTimeout 也不起作用。

这个停顿导致生产停顿,这是一个大问题。

我该如何解决?

【问题讨论】:

  • 出于好奇,您是否体验过主机为FQDN或IP的摊位;即是否可能是 DNS 超时?
  • @Anders R. Bystrup 我正在发送主机 IP。没有尝试发送 DNS

标签: java queue jms activemq


【解决方案1】:

您是否尝试按照here 的文档将“connectionTimeout”选项添加到 URI?超时值控制连接调用失败之前的时间。

【讨论】:

  • 我正在使用故障转移协议,并尝试了超时选项,这在这个 scnario 中没有帮助
  • 选项错误,需要设置TCP级别的传输选项来控制socket等待的时间。这是一个 TCP 传输选项,请阅读我的答案中链接的页面。
猜你喜欢
  • 1970-01-01
  • 2019-11-30
  • 2012-03-22
  • 2016-11-18
  • 2019-04-30
  • 2014-12-12
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
相关资源
最近更新 更多