ActiveMQ 桥接
- - CSDN博客互联网推荐文章使用目的:将本地产生的消息转发到远程,通过远程服务器来处理消息,处理完成后,再启动消费者处理本地服务器消息(验证消息是否被转走,本地无消息可处理为正常). 消息在下面的地址被消费,无需任何特别配置,采用默认的配置即可. 生产消息地址为localhost:7001,需要做如下配置. 注意: 表示只有这个队列的会进行桥接转发.
使用目的:将本地产生的消息转发到远程,通过远程服务器来处理消息,处理完成后,再启动消费者处理本地服务器消息(验证消息是否被转走,本地无消息可处理为正常)
消息在下面的地址被消费,无需任何特别配置,采用默认的配置即可。
114.113.145.63:61616
生产消息地址为localhost:7001,需要做如下配置。
<bean id="bridgedBroker" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop"> <property name="brokerName" value = "bridgedBroker"/> <property name="persistent" value="false"/> <property name="transportConnectorURIs"> <list> <value>tcp://localhost:7001</value> </list> </property> <property name="jmsBridgeConnectors"> <list> <bean class="org.apache.activemq.network.jms.JmsQueueConnector"> <property name="outboundQueueConnectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://114.113.145.63:61616" /> </bean> </property> <property name="outboundQueueBridges"> <list> <bean class="org.apache.activemq.network.jms.OutboundQueueBridge"> <constructor-arg value="messages.input"/> </bean> </list> </property> </bean> </list> </property> </bean>
因此在测试代码上需要注意改为Destination dest = session.createQueue("messages.input");
另外的测试方法:启动本地消息生产者,生产30条消息,但不做远程消息的处理,生产完成后直接启动消费者消费本地消息,发现本地没有可以消费的消息,然后再启动消费者处理远程消息,发现消息都被转发到了远程服务器。
还有一种测试方法:启动本地消息生产者,生产30条消息,同时启动本地消息消费者,发现15条消息被本地消费者处理,15条消息被转发到了远程服务器,说明远程服务器相当于一个本地消息的消费者。
更多的阅读参考http://activemq.apache.org/jms-to-jms-bridge.html