【问题标题】:How to disable transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616 message如何禁用 transport.failover.FailoverTransport 成功连接到 tcp://localhost:61616 消息
【发布时间】:2017-01-02 08:27:26
【问题描述】:

在 spring 中使用 DefaultJmsListenerContainerFactory 订阅消息并使用故障转移 activemq 传输来订阅消息时,我不断收到低于 INFO 消息的消息。

2016-08-25 15:00:07,235 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:08,265 [ActiveMQ Task-1] INFO transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:08,265 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:09,296 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:09,328 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:10,299 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:10,346 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616
2016-08-25 15:00:11,318 [ActiveMQ Task-1] INFO  transport.failover.FailoverTransport Successfully connected to tcp://localhost:61616

这是否可以在控制台上禁用此 INFO 消息,或者是否有任何时间间隔在控制台上打印此消息?

我尝试使用一些 ActiveMQ 传输连接选项,但对我没有帮助。

【问题讨论】:

    标签: spring-boot apache-camel jms activemq spring-jms


    【解决方案1】:

    我想到的第一件事是您可以使用此处记录的故障转移参数:http://activemq.apache.org/failover-transport-reference.html

    【讨论】:

    • :感谢您的回复。我以这样的方式解决了这个问题,即在 log4j 级别的 activemq 上禁用 Info,如下所示:logging.level.org.apache.activemq=WARN
    【解决方案2】:

    我们发现使用 SpringBoot 和 ActiveMQ 时默认禁用连接池。我们在 application.yml 文件中设置以下属性来启用池:

    spring.activemq.pool.enabled: true
    

    将日志级别设置为WARN 只是掩盖了问题,因为它仍然会在后台丢弃并重新创建连接。

    【讨论】:

    • 我们的 props 中有 spring.activemq.pool.enabled=true,但我们不断收到那些将 broker-url 设置为 failover://(tcp://...,tcp://...)?randomize=false&initialReconnectDelay=5000&maxReconnectAttempts=4&timeout=3000&maxReconnectDelay=30000&jms.prefetchPolicy.all=10 的消息。所以它可能在这些参数中的某个地方。我同意仅仅推送日志级别并不是真正的解决方案。
    【解决方案3】:

    来自 ActiveMQ 论坛:

    PooledConnectionFactory的默认idleTimeout只有30 秒。物理连接是以循环方式借用的。 因此,如果应用程序需要超过 30 秒来循环通过 5 连接,您将开始观察连接流失,这似乎完全 你的情况发生了什么。 后续使用之间是否可能间隔 30 秒 JmsTemplate 在您的场景中?

    所以解决办法应该是更新连接池的idleTimeout。

    【讨论】:

      猜你喜欢
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 2021-01-22
      • 1970-01-01
      • 2017-10-11
      • 2021-05-28
      相关资源
      最近更新 更多