如何将docker上的spring应用程序连接到docker上的activemq集群

时间:2015-08-14 02:30:04

标签: spring rest docker activemq

我在Docker容器中的Tomcat8上运行了一个简单的REST应用程序。我还有3个docker容器,它们分别在端口616166161761618上运行ActiveMQ 5.11.1代理,主从(以mysql为持久性)。

docker run --name myRESTApp -t -i --rm -p 8080:8080 -p 9090:9090  -v $(pwd)/webapps:/usr/local/tomcat/webapps -v $(pwd)/logs:/usr/local/tomcat/logs --link activemq1:activemq myRESTApp

在我的RESTApp activeMQConfiguration.xml

<property name="brokerURL" value="failover:(#{systemEnvironment['ACTIVEMQ_PORT_61616_TCP']})?randomize=false"/>

3个ActiveMQ代理在activemq.xml

中有这个
<transportConnectors>
    <transportConnector name="openwire" uri="tcp://0.0.0.0:0" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true" />
</transportConnectors>

主设备最初在61616上运行,我停止了主设备,从设备(端口61617)成为了新主设备。

即使在61616上的主人停止之前,它也会抛出

Connect fail to: tcp://172.17.0.84:61616, reason: java.net.ConnectException: Connection refused

为什么在链接后,它仍然无法连接到代理?

61616上的主人停止后,它失败了:

Connect fail to: tcp://172.17.0.84:61616, reason: java.net.NoRouteToHostException: No route to host 

不应该像所提到的那样here自动更新新主人的客户端吗?

有人可以建议将ActiveMQ集群代理连接到我的应用程序的最佳做法是什么?感谢

0 个答案:

没有答案