ActiveMQ 本地转本地再转远程的完整配置

本文介绍了一种使用ActiveMQ在网络间桥接消息的具体配置方案。该方案通过两个Broker实例,将消息从本地主机转发至远程服务器进行处理,涉及多个连接配置及消息队列桥接设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
   
    http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<!-- START SNIPPET: example -->
<!-- 在localhost:7001生产消息然后消息被转到localst:7000然后再转到远程114.113.145.63:61616,在远程进行消息处理-->
<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.apache.org/schema/core"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

    <!-- Allows us to use system properties as variables in this configuration file -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>file:${activemq.base}/conf/credentials.properties</value>
        </property>      
    </bean>
	<bean id="mainBroker" class="org.apache.activemq.broker.BrokerService" init-method="start" destroy-method="stop">
		<property name="brokerName" value = "mainBroker"/>
		<property name="persistent" value="false"/>
		<property name="transportConnectorURIs">
			<list>
				<!--第一个被转的目的地的监听地址-->
				<value>tcp://localhost:7000</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>
 <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://localhost:7000" />
						</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>

    <!-- 
        Enable web consoles, REST and Ajax APIs and demos
        It also includes Camel (with its web console), see ${ACTIVEMQ_HOME}/conf/camel.xml for more info
        
        Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details 
    -->
    <import resource="jetty.xml"/>
    
</beans>
<!-- END SNIPPET: example -->

前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. 什么是Apache ActiveMq Apache ActiveMq是最流行和最强大的开源消息和集成服务器。同时Apache ActiveMq是速度快,支持多种跨语言客户端和协议,同时配有易于使用的企业集成模式和优秀的特性,并且支持JMS1.1和J2EE1.4。具体特性见官网:http://activemq.apache.org/ 2. 什么是JMS JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。 JMS 支持两种消息传递模型: 点对点(point-to-point,简称 PTP) 发布/订阅(publish/subscribe,简称 pub/sub)。 这两种消息传递模型非常相似,但有以下区别: PTP 消息传递模型规定了一条消息只能传递给一个接收方。 采用javax.jms.Queue 表示。Spring配置类型destination-type="queue"。 Pub/sub 消息传递模型允许一条消息传递给多个接收方。采用javax.jms.Topic表示。Spring配置类型destination-type="topic"。 二. 单服务器异步访问 3. Spring 整合JMS和ActiveMq流程 1) 下载和部署ActiveMq服务器 2) Spring jms和activemq相关依赖引入 3) Spring整合activemq配置 4) 定义消息发布者(生产者) 5) 定义消息订阅者(消费者) 6) Spring mvc配置 7) 实例测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值