【问题标题】:ActiveMQ setting transport parameters programmaticallyActiveMQ 以编程方式设置传输参数
【发布时间】:2017-05-17 05:55:08
【问题描述】:

是否可以在运行时使用 java API 设置 ActiveMQ 传输参数,例如 maxReconnectAttempts

就我而言,我最初是通过提供基本的故障转移 url 故障转移来创建 ActiveMQ 连接工厂:

ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory("(ssl://192.168.1.112:61617,ssl://192.168.1.112:61619)?randomize=false")

但是稍后我需要为此连接工厂设置传输参数,例如maxReconnectAttempts。有可能吗?

【问题讨论】:

    标签: java activemq ultraesb


    【解决方案1】:

    当然,就像这样:

    ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory("failover:(ssl://192.168.1.112:61617,ssl://192.168.1.112:61619)?randomize=false&maxReconnectAttempts=Value")
    

    可以在 url 中设置所有故障转移传输选项

    http://activemq.apache.org/failover-transport-reference.html

    如果以后想修改url,可以调用connectionFactory.setBrokerURL("newURL"),之后所有新建的连接都会配置url的新参数。

    如果您想在创建 ConnectionFactory 后更改它,请记住,会根据 url 参数为每​​个新 Connection 创建一个新的 FailoverTransport 实例,并且每个 Connection 都持有其 FailoverTransport 的实例,因此要更改他的声明您可以像这样访问它:

    ((FailoverTransport) ((TransportFilter) ((TransportFilter) ((ActiveMQConnection) connection).getTransport()).getNext()).getNext())
                    .setMaxReconnectAttempts(10);
    

    或更具可读性:

    org.apache.activemq.transport.TransportFilter responseCorrelator = (TransportFilter) ((ActiveMQConnection) connection).getTransport();
    TransportFilter mutexTransport = (TransportFilter) responseCorrelator.getNext();
    FailoverTransport failoverTransport = (FailoverTransport) mutexTransport.getNext();
    failoverTransport.setMaxReconnectAttempts(10);
    

    要了解所有这些强制转换的原因,您可以查看此方法的源代码:

    org.apache.activemq.transport.failover.FailoverTransportFactory.doConnect(URI)
    

    这里https://github.com/apache/activemq/blob/master/activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransportFactory.java

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 2021-08-26
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 2011-11-20
      • 2021-07-10
      • 2011-12-28
      相关资源
      最近更新 更多