Mule ActiveMQ 连接器不会重新连接到 Amazon MQ 负载均衡器

问题描述

我们正在将我们的消息队列从本地解决方案迁移到 Amazon MQ。在每周维护重新启动后,我们带有队列侦听器的 Mulesoft 应用程序无法重新连接到 Amazon MQ 负载均衡器 URL。我们在使用本地 ActiveMQ 解决方案时没有遇到这个问题。

<jms:listener doc:name="Listener" destination="${queue.destination}" config-ref="JMS_CONfig"/>

<jms:config name="JMS_CONfig" doc:name="JMS Config">
    <jms:active-mq-connection username="${queue.user.name}" password="${queue.password}">
        <reconnection >
                <reconnect-forever blocking="false" frequency="15000"/>
        </reconnection>
        <jms:factory-configuration brokerUrl="${jms.broker.url}" />
    </jms:active-mq-connection>
</jms:config>

<jms.connector.version>1.7.1</jms.connector.version>
<!-- Tested version 1.7.3 as well. -->

不起作用:

jms.broker.url=ssl://broker-name.domain.net:61617

解决办法:

jms.broker.url=failover:(ssl://worker-1.mq.us-east-1.amazonaws.com:61617,ssl://worker-2.mq.us-east-1.amazonaws.com:61617)

有没有办法让负载均衡器 url 正常工作?我们更希望在两个 Amazon MQ 工作线程之间平衡流量。

解决方法

对工作人员使用 failover url 解决此问题意味着重新连接被委托给 ActiveMQ JMS 客户端实现而不是 Mulesoft。这表明问题出在 Mulesoft 的重新连接功能上。尝试使用 jms.broker.url=failover:(ssl://broker-name.domain.net:61617)。这将是一个更好的解决方法,因为它将使用 Amazon MQ 负载平衡器。