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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值