部署情况:Activemq1、程序1部署在服务器1,Activemq2部署在服务器2,程序2部署在服务器3,程序1发送消息时,程序2需要接收并回应。
网络限制:服务器2可以访问服务器1,服务器3可以访问服务器2,服务器1无法访问服务器2和服务器3
解决:通过Activemq进行桥接,即把服务器2的Activemq2和服务器1的Activemq1桥接起来,使得程序2可以通过Activemq2来获取程序1发送到Activme1的消息
在Activemq2的配置文件acvtivemq.xml中配置:
<networkConnectors>
<networkConnector uri="static:(tcp://xxxxxxxx:xxxx)" duplex="true" name="mybridge" userName="system" password="manager">
<dynamicallyIncludedDestinations>
<queue physicalName="testQueue"/>
<queue physicalName="testQueueResponse"/>
</dynamicallyIncludedDestinations>
</networkConnector>
</networkConnectors>
其中:uri为Activemq1的地址,deplex配置是否为双向,userName、password分别为Activemq1的帐号密码,根据实际情况,配置了需要桥接的队列,testQueue和testQueueResponse。
关于Activemq.xml的配置说明可以参考它的结构定义文件:
http://activemq.apache.org/schema/core/activemq-core-5.9.0.xsd