ActiveMQ之高级特性桥接

来源:互联网 发布:adobe cc mac 编辑:程序博客网 时间:2024/04/29 16:58
将本地产生的消息转发到远程,通过远程服务器来处理消息,处理完成后,再启动消费者处理本地服务器消息(验证消息是否被转走,本地无消息可处理为正常)消息在下面的地址被消费,无需任何特别配置,采用默认的配置即可。

192.168.18.43: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://192.168.18.43: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>
注意:<constructor-arg value="messages.input"> 表示只有这个队列的会进行桥接转发。
因此在测试代码上需要注意改为Destination dest = session.createQueue("messages.input");
另外的测试方法:启动本地消息生产者,生产30条消息,但不做远程消息的处理,生产完成后直接启动消费者消费本地消息,发现本地没有可以消费的消息,然后再启动消费者处理远程消息,发现消息都被转发到了远程服务器。
还有一种测试方法:启动本地消息生产者,生产30条消息,同时启动本地消息消费者,发现15条消息被本地消费者处理,15条消息被转发到了远程服务器,说明远程服务器相当于一个本地消息的消费者。
更多的阅读参考http://activemq.apache.org/jms-to-jms-bridge.html

0 0
原创粉丝点击