如何将docker上的spring应用程序连接到docker上的activemq集群
我有一个简单的REST应用程序在Docker容器中的Tomcat8上运行。 我也有3个docker容器,分别在端口61617
和61618
master slave上运行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
在myRESTApp的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
它不应该像这里提到的那样,自动更新新主人的客户吗?
任何人都可以请告知什么是连接的经纪人的ActiveMQ集群到我的应用程序的最佳做法? 谢谢