ActiveMQ 桥接

使用目的:将本地产生的消息转发到远程,通过远程服务器来处理消息,处理完成后,再启动消费者处理本地服务器消息(验证消息是否被转走,本地无消息可处理为正常)

消息在下面的地址被消费,无需任何特别配置,采用默认的配置即可。

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>

注意:<constructor-arg value="messages.input"> 表示只有这个队列的会进行桥接转发。

因此在测试代码上需要注意改为Destination dest = session.createQueue("messages.input");


另外的测试方法:启动本地消息生产者,生产30条消息,但不做远程消息的处理,生产完成后直接启动消费者消费本地消息,发现本地没有可以消费的消息,然后再启动消费者处理远程消息,发现消息都被转发到了远程服务器。

还有一种测试方法:启动本地消息生产者,生产30条消息,同时启动本地消息消费者,发现15条消息被本地消费者处理,15条消息被转发到了远程服务器,说明远程服务器相当于一个本地消息的消费者。

更多的阅读参考http://activemq.apache.org/jms-to-jms-bridge.html


作者:jaysuper 发表于2013-5-29 16:28:13 原文链接
阅读:79 评论:0 查看评论

你可能感兴趣的:(activemq,桥接)