ActiveMQ 实践之路
ActiveMQ的作用总结(应用场景及优势)以及springboot+activeMq实战

ActiveMQ的作⽤总结(应⽤场景及优势)以及springboot+activeMq实战业务场景说明:消息队列在⼤型电⼦商务类⽹站,如京东、淘宝、去哪⼉等⽹站有着深⼊的应⽤,队列的主要作⽤是消除⾼并发访问⾼峰,加快⽹站的响应速度。
在不使⽤消息队列的情况下,⽤户的请求数据直接写⼊数据库,在⾼并发的情况下,会对数据库造成巨⼤的压⼒,同时也使得系统响应延迟加剧。
在使⽤队列后,⽤户的请求发给队列后⽴即返回,(例如: 当然不能直接给⽤户提⽰订单提交成功,京东上提⽰:您“您提交了订单,请等待系统确认”),再由消息队列的消费者进程从消息队列中获取数据,异步写⼊数据库。
由于消息队列的服务处理速度远快于数据库,因此⽤户的响应延迟可得到有效改善。
图解说明:1. 消息队列说明消息队列中间件是分布式系统中重要的组件,主要解决应⽤耦合,异步消息,流量削锋等问题。
实现⾼性能,⾼可⽤,可伸缩和最终⼀致性架构。
是⼤型分布式系统的中间件。
⽬前在⽣产环境,使⽤较多的消息队列有,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。
2. 消息队列应⽤场景消息队列在实际应⽤中常⽤的使⽤场景。
异步处理,应⽤,流量削锋和消息通讯四个场景。
2.1. 异步处理场景说明:⽤户注册后,需要发注册邮件和注册短信。
传统的做法有两种1.串⾏的⽅式;2.并⾏⽅式。
(1)串⾏⽅式:将注册信息写⼊成功后,发送注册邮件,再发送注册短信。
以上三个任务全部完成后,返回给客户端。
(2)并⾏⽅式:将注册信息写⼊成功后,发送注册邮件的同时,发送注册短信。
以上三个任务完成后,返回给客户端。
与串⾏的差别是,并⾏的⽅式可以提⾼处理的时间。
假设三个业务节点每个使⽤50毫秒钟,不考虑⽹络等其他开销,则串⾏⽅式的时间是150毫秒,并⾏的时间可能是100毫秒。
因为CPU在单位时间内处理的请求数是⼀定的,假设CPU1秒内吞吐量是100次。
则串⾏⽅式1秒内CPU可处理的请求量是7次(1000/150)。
ActiveMQ实践入门指南

ActiveMQ实践入门指南ActiveMQ实践入门指南ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。
ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
下面我们将分四部分来介绍ActiveMQ的相关内容。
ActiveMQ实践:松耦合和ActiveMQ回到2003年,一群开源开发者聚在一起组成了Apache Geronimo。
他们发现没有一个很好的使用BSD风格许可证的消息中间件可用。
因为Geronimo需要一个JMS实现J2EE兼容性,所以一些开发者开始探讨这种可能性。
ActiveMQ实践:松耦合和ActiveMQActiveMQ实践:特性列表和安装这一部分,我们将介绍ActiveMQ的特性列表和如何进行安装和如何对其进行测试。
ActiveMQ实践:特性列表和安装ActiveMQ实践:使用场景在系统架构中,有很多场景ActiveMQ和异步消息都会产生深远的影响。
这部分中,我们将介绍一些使用ActiveMQ的场景实例。
ActiveMQ实践:使用场景ActiveMQ实践:ActiveMQ使用入门开始使用ActiveMQ并不是很难,你只需要启动代理,确保它能够接受连接和发送消息。
这部分中,我们将介绍如何开始使用ActiveMQ。
ActiveMQ实践:ActiveMQ使用入门ActiveMQ实践:松耦合和ActiveMQ回到2003年,一群开源开发者聚在一起组成了Apache Geronimo。
在这种情况下,他们发现没有一个很好的使用BSD风格许可证的消息中间件可用。
因为Geronimo需要一个JMS实现J2EE兼容性,所以一些开发者开始探讨这种可能性。
他们拥有大量的商业MOM经验,而且他们甚至之前已经创建了一些MOM,这些开发者打算创建下一代伟大的开源消息中间件。
使用ActiveMQ示例

13. message.setLong("count", new Date().getTime());14. Thread.sleep(1000);15. //通过消息生产者发出消息16. producer.send(message);17. }18. mit();19. session.close();20. connection.close();21. }Jms 接收代码:1. public static void main(String[] args) throws Exception {2. ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();3.4. Connection connection = connectionFactory.createConnection();5. connection.start();6.7. final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);8. Destination destination = session.createQueue("my-queue");9.10. MessageConsumer consumer = session.createConsumer(destination);11. /*//listener 方式12. consumer.setMessageListener(new MessageListener() {13.14. public void onMessage(Message msg) {15. MapMessage message = (MapMessage) msg;16. //TODO something....17. System.out.println("收到消息:" + new Date(message.getLong("count")));18. mit();19. }20.21. });22. Thread.sleep(30000);23. */24. int i=0;25. while(i<3) {26. i++;27. MapMessage message = (MapMessage) consumer.receive();28. mit();29.30. //TODO something....31. System.out.println("收到消息:" + new Date(message.getLong("count")));32. }33.34. session.close();35. connection.close();36. }启动 JmsReceiver 和 JmsSender 可以在看输出三条时间信息。
activemq消息中间件实验自我总结

activemq消息中间件实验自我总结ActiveMQ是一种流行的开源消息中间件,本次实验我对ActiveMQ进行了一些基本操作,并进行了实际的应用场景实践。
通过这次实验,我对ActiveMQ的原理、特性以及使用方法有了更深入的了解。
在实验之前,我预先了解了ActiveMQ的一些基本概念,包括消息队列、发布/订阅模式以及其它相关概念。
这为我后续实验的开展提供了一定的基础。
首先,我搭建了ActiveMQ的环境。
具体来说,我下载了ActiveMQ的安装包,然后解压并配置了相关的环境变量。
接着,我启动了ActiveMQ的服务器,并在浏览器中访问了ActiveMQ的管理控制台。
在控制台中,我可以看到一些连接的信息,并对消息队列进行管理。
接下来,我编写了一些示例程序进行实验。
首先,我创建了一个生产者程序。
在该程序中,我通过创建一个连接工厂,然后建立与ActiveMQ的连接以及创建一个会话。
然后,我创建了一个消息队列,并通过生产者发送了一条消息。
最后,我关闭了会话和连接。
在生产者的基础上,我编写了一个消费者程序。
在该程序中,我同样创建了一个连接工厂,然后建立与ActiveMQ的连接以及创建一个会话。
之后,我创建了一个消息接收器,并监听消息队列。
当有新消息到达时,程序会自动接收并进行处理。
最后,我关闭了会话和连接。
通过运行这两个示例程序,我成功地实现了消息的发送和接收。
从中我可以看出,ActiveMQ能够很好地支持消息的发布和订阅,确保消息的可靠传递。
然后,我尝试了一些更复杂的实验,以模拟真实应用场景。
例如,我创建了一个简单的电商系统。
在该系统中,我使用ActiveMQ实现了订单的消息通知功能。
当用户下单时,订单系统会将订单信息发送到一个消息队列中。
接着,支付系统监听该消息队列,一旦有新消息到达,支付系统会根据订单信息进行支付处理。
通过这种方式,我成功地实现了订单与支付系统之间的解耦合,并保证了系统的可靠性和稳定性。
消息队列——ActiveMQ使用及原理浅析

消息队列——ActiveMQ使⽤及原理浅析⽂章⽬录引⾔什么是消息中间件?随着业务的急速增长以及分布式架构的逐渐兴起,⾸先要考虑的就是如何⾼效的在各节点之间传递消息,其次要考虑的是流量洪峰时如何削减系统的压⼒以及跨平台消息的传输等问题,消息中间件就可以帮我们解决以上问题。
⽽消息队列产品众多,我们该如何选择呢?本系列⽂章主要针对⽬前使⽤最多的ActiveMQ、Kafka、RabbitMQ进⾏讲解说明。
正⽂⼀、ActiveMQ是如何产⽣的?产⽣背景⼀开始消息中间件的⼚商繁多,且各个⼚商之间没有统⼀的规范,这就导致了各消息中间件⾮常难以整合协作,因此,后来陆续出现了如JMS和AMQP 这样的消息队列规范,提供了统⼀的标准,⽽ActiveMQ就是完全遵循JMS规范开发的消息队列。
JMS规范基本概念什么是JMS(Java Message Service)规范?JMS是⼀个基于Java平台⾯向消息中间件(MOM)的API,⽤于在两个应⽤程序之间,或分布式系统中发送消息,进⾏异步通信。
在设计JMS时,设计师就计划能够结合现有消息队列的优点,如:不同的消息传送模式或域,例如点对点消息传送和发布/订阅消息传送⽀持同步和异步消息⽀持可靠性消息的传输⽀持常见的消息格式,如:⽂本、字节、流、对象等JMS体系结构上⾯是从百度找的⼀个图⽚,下⾯对其中各个对象分别进⾏说明:ConnectionFactory:连接⼯⼚,⼀般设为单例模式,⼀旦创建,就⼀直运⾏在应⽤容器内,客户端使⽤连接⼯⼚创建⼀个JMS连接。
Connection:JMS连接表⽰JMS客户端和服务器端之间的⼀个活动的连接。
Session:JMS会话表⽰JMS客户与JMS服务器之间的会话状态。
JMS会话建⽴在JMS连接上,表⽰客户与服务器之间的⼀个会话线程。
Destination:消息管道,从⽣产端流向客户端,包括队列(PTP),主题(Pub/Sub)。
Message Producer和Message Consumer:⽣产者和消费者对象由Session对象创建,⽤于发送和接收消息。
消息中间件-activemq实战之整合Spring(四)

消息中间件-activemq实战之整合Spring(四)前⾯的理论准备已经很充分,这⼀节我们来实战:将activemq整合到Spring框架才⾏中,因为Spring已经集成了JMS,这也为我们配置activermq带来了⽅便。
1. Spring对jms的⽀持因为Spring已经将JMS集成到框架⾥⾯了,对jms做了⾃⼰的封装,我们使⽤起来更加⽅便,在Spring中使⽤jms⽐较⿇烦的就是配置,在Spring中配置JMS⼤体需要8个部分:1. ConnectionFactory:和jms服务器的连接, 可以是外部的jms server, 也可以使⽤embedded ActiveMQ Broker;2. Destination:有topic和queue两种⽅式;3. JmsTemplate: spring提供的jms模板;4. MessageConverter:消息转换器;5. MessageProducer:消息⽣产者;6. MessageConsumer:消息消费者;7. MessageListener:消息监听器;8. MessageListenerContainer:消息监听容器。
下⾯我把完整的配置⽂件按照上⾯的步骤拆开分别讲解:1.1⾸先我们配置ConnectionFactory:<amq:connectionFactory id="amqConnectionFactory"brokerURL="tcp://127.0.0.1:61616"userName="admin"password="admin" />brokerURL是指要连接的activeMQ server的地址,该配置即使⽤activemq独⽴的消息存储环境,即使服务器重启消息也不会丢失。
<!-- 配置JMS连接⼯⼚ --><bean id="connectionFactory"class="org.springframework.jms.connection.CachingConnectionFactory"><constructor-arg ref="amqConnectionFactory" /><property name="sessionCacheSize" value="100" /></bean>我们从Spring给我们提供的connectionFactory中获取Connection,并且把该connectionFactory注册到上⾯定义的activemq server中。
Active MQ教程+配置
ActiveMQ-陈波Active MQ是一个基于Apcache 2.0licenced发布,开放源码的JMS产品。
其特点为:1)提供点到点消息模式和发布/订阅消息模式;2)支持JBoss、Geronimo等开源应用服务器,支持Spring框架的消息驱动;3)新增了一个P2P传输层,可以用于创建可靠的P2P JMS网络连接;4)拥有消息持久化、事务、集群支持等JMS基础设施服务。
Apache activemq是最受欢迎和最强大的开源消息中间件。
Apache activemq是非常快速的,支持多种跨客户端语言和协议,并且还有许多先进功能。
Apache activemq完全遵守JMS1.1和J2EE 1.4规范。
Apache activemq是在Apache 2.0License许可下发布的。
一.ActiveMQ是什么?ActiveMQ is the most popular and powerful open source MessageBus.ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,尽管JMS 规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
下面是它的特性列表1.多种语言和协议编写客户端。
语言:Java,C,C++,C#,Ruby,Perl,Python,PHP。
应用协议:OpenWire,Stomp REST,WS Notification,XMPP,AMQP2.完全支持JMS1.1和J2EE1.4规范(持久化,XA消息,事务)3.对Spring的支持,ActiveMQ可以很容得内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性4.通过了常见J2EE服务器(如Geronimo,JBoss4,GlassFish,WebLogic)的测试,其中通过JCA1.5resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE1.4商业服务器上5.支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA6.支持通过JDBC和journal提供高速的消息持久化7.从设计上保证了高性能的集群,客户端-服务器,点对点8.支持Ajax9.支持与Axis的整合10.可以很容易得调用内嵌JMS provider,进行测试二.ActiveMQ的竞争者1,其他开源JMS provider(资料来自):jbossmq(jboss4)jboss messaging(jboss5)joram-4.3.212006-09-22openjms-0.7.7-alpha-3.zip December26,2005mantamqubermqSomnifugiJMS2005-7-27开源的JMS Provider大部分都已经停止发展了,剩下的几个都是找到了东家,和某种J2EE 服务器挂钩,比如jboss mq与jboss,joram与jonas(objectweb组织),ActiveMQ与Geronimo(ASF APACHE基金组织),而在这3个之间,从网络底层来看,只有ActiveMQ使用了NIO,单从这个角度来看ActiveMQ在性能上会有一定的优势。
activemq用法(一)
activemq用法(一)ActiveMQ用法详解概述ActiveMQ是一款开源的,基于JMS(Java消息服务)规范的消息中间件。
它提供了高性能、可靠的消息传递方式,支持多种通信协议。
安装配置1.下载ActiveMQ二进制文件,解压到指定目录。
2.配置ActiveMQ启动脚本,设置JAVA_HOME和ActiveMQ_HOME环境变量。
3.启动ActiveMQ服务器,通过命令行或脚本方式启动。
发送消息•创建连接工厂对象使用ActiveMQConnectionFactory类创建连接工厂对象,需要指定ActiveMQ服务器的地址和端口。
•创建连接对象通过连接工厂对象的createConnection()方法创建连接对象。
•创建会话对象通过连接对象的createSession()方法创建会话对象,可以设置事务和确认模式。
•创建目标对象使用会话对象的createQueue()或createTopic()方法创建目标对象,分别代表点对点和发布订阅模式。
•创建消息生产者对象通过会话对象的createProducer()方法创建消息生产者对象。
•创建消息对象使用会话对象的createTextMessage()方法创建文本消息对象,可以设置消息内容。
•发送消息通过消息生产者对象的send()方法发送消息。
接收消息•创建连接工厂对象、连接对象、会话对象和目标对象同上。
•创建消息消费者对象通过会话对象的createConsumer()方法创建消息消费者对象。
•注册消息监听器通过消息消费者对象的setMessageListener()方法注册消息监听器,实现对消息的接收和处理。
•接收消息在消息监听器的onMessage()方法中处理接收到的消息。
消息持久化•配置持久化方式在ActiveMQ的配置文件中配置消息持久化方式,可以选择将消息持久化到磁盘,从而保证消息的持久性。
消息传递模式•点对点模式点对点模式下,消息发送者将消息发送到一个指定的队列,消息接收者从队列中接收消息。
ACTIVEMQ入门教程
ACTIVEMQ入门教程ActiveMQ是一个开源的消息中间件,它具有高性能、可靠性和可扩展性的特点,可以在分布式系统中处理大量的消息通信。
本教程将介绍如何入门使用ActiveMQ,包括安装配置、基本概念和使用方法等。
一、安装配置3. 启动ActiveMQ:进入解压目录,找到bin文件夹,执行activemq命令(Windows下执行activemq.bat,Linux下执行activemq.sh)。
5. 配置连接信息:在管理控制台中,可以配置ActiveMQ的连接信息,包括端口号、用户名、密码等。
二、基本概念1. Broker:Broker是ActiveMQ中的核心组件,负责接收和分发消息。
一个Broker可以同时连接多个生产者和消费者。
2. Destination:Destination是消息发送和接收的目的地。
可以分为两种类型:Queue和Topic。
Queue用于Point-to-Point的消息通信,每个消息只能被一个消费者接收;Topic用于Publish/Subscribe的消息通信,每个消息可以被多个订阅者接收。
3. Producer:Producer是消息的发送者,负责将消息发送到Broker的Destination中。
4. Consumer:Consumer是消息的接收者,负责从Broker的Destination中接收消息。
5. Message:Message是ActiveMQ中的消息对象,包含消息的内容和一些元数据信息。
三、使用方法1. 发送和接收消息:首先需要创建一个连接,并创建一个会话。
然后创建一个Destination,并创建一个Producer发送消息到该Destination中。
接收消息的方法类似,创建一个Destination,并创建一个Consumer用于接收消息。
2. 消息过滤:可以通过消息选择器来过滤消息。
消息选择器使用SQL-92语法来选择消息。
例如,可以通过消息属性来选择消息:consumer.receive("color = 'red'")。
activemq负载均衡实现
AMQ负载均衡Broker-Cluster部署方式中,各个broker通过网络互相连接并共享queue。
这在一定程度上可视为负载均衡的一种方法。
有两种实现方式:静态发现和动态发现。
注:jetty.xml的端口号也要改。
1、 The StaticTransport(静态发现,broker之间的协议,与client无关)静态发现协议使用硬编码的形式,使得broker可以发现其他的broker,并共享queue。
消息消费者可以从其中任意一个broker收到发给自己的消息。
示例如下:[1]. 将ActiveMq拷贝2份,分别命名:activemq1,activemq2,放在一台机器上(测试而已)[2]. activemq1做如下配置:<!—配置静态发现,使本broker可发现本机上61617端口的broker--><Network Connectors><networkConnector uri="static:(tcp://localhost:61617)"/></networkConnectors><transportConnectors><transportConnectorname="openwire"uri="tcp://0.0.0.0:61616?maximumConnectio ns=1000&wi reFormat.maxFrameSize=104857600"/></transportConnectors>activemq 2做如下配置:<!—配置静态发现,使本broker可发现本机上61616端口的broker--><networkConnectors><networkConnectoruri="static:(tcp://localhost:61616)"/></networkConnectors><transportConnectors><transportConnectorname="openwire"uri="tcp://0.0.0.0:61617?maximumConnectio ns=1000&wi reFormat.maxFrameSize=104857600"/></transportConnectors>通过以上配置使activemq 1和activemq 2这两个broker通过网络互相连接,并共享queue,启动activemq 1和activemq 2,可以看到如下启动日志:可以看到activemq 1和activemq 2,networkconnection has been established[3]. 测试代码:发送端链接tcp://localhost:61616,发送消息到queue,接收端做如下修改:connectionFactory = newActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:616 17");经测试Receiver可以接受到数据,表示activemq 1和activemq 2已经共享了queue。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ActiveMQ 实践之路(三) ActiveMQ 4.x +JBoss 4.x 整合篇原创作者: cctvx1阅读:1070次评论:0条更新时间:2007-03-07ActiveMQ本身是开源项目,所以采用ActiveMQ的项目往往也是以其他开源软件共同构建,目前主流开源应用服务器有Boss,geronimo,JOnAs,而其中geronimo 默认的JMS Provider就是ActiveMQ,那我们就着重介绍ActiveMQ与JBoss,JOnAs的整合方案本文参考了Integrating Apache ActiveMQ with JBoss与JBoss Integration,再根据笔者实际整合经验总结而成。
一.整合需要的环境.jdk1.5jboss-4.0.5.GAactivemq-ra-4.1.0-incubator.rar (在ActiveMQ 4.* lib\optional 目录里面有对应的ra的压缩包)开始整合前请确保jboss能够正确的启动起来。
二.整合步骤1. 步骤一: 解压activemq-rar-4.1.0-incubator.rar 到jboss-4.0.5.GA\server\default\deploy\activemq-ra.rar (这个是目录名字) 下面是activemq-rar.rar目录下面的文件和子目录,请注意红色标记的地方(后面会逐一说明,整合的过程)activeio-core-3.0.0-incubator.jaractivemq-core-4.1.0-incubator.jaractivemq-ra-4.1.0-incubator.jarbackport-util-concurrent-2.1.jarcommons-logging-1.0.3.jarderby-10.1.1.0.jargeronimo-j2ee-management_1.0_spec-1.0.jarspring-2.0.jarspring-1.2.6.jarxbean-spring-2.7.jarbroker-config.xmlMETA-INF2.步骤二. 删除多余的spring-1.2.6.jar,由于4.1.0的ra里面包含了2个不同版本的spring会触发一个exception的产生,https:///activemq/browse/AMQ-1124, 而且为了以后能够使用新的spring schema配置方式,我们这里会删除spring-1.2.6.jar,保留spring-2.0.jar。
(最新的snapshot version的ra已经去掉了这个多余的spring-1.2.6.jar).3.步骤三: 修改META-INF\ra.xml,让JBoss使用broker-config.xml 作为默认的配置文件配置borker. 修改下面的地方1. <config-property-value>config-property-value>2. <!-- <config-property-value>xbean:broker-config.xml</config-property-value>-->改为:1. <!-- <config-property-value></config-property-value> -->2. <config-property-value>xbean:broker-config.xmlconfig-property-value>表示使用broker-config.xml来配置启动ActiveMQ.4.步骤四: 修改borker-config.xml,默认的borker-config.xml会产生一个错误,无论是我使用的版本还是最后的snapshot版本,默认的borker-config.xml都会让xbean-spring 2.7(snapshot 使用的是2.8)抛出exception.解决的办法如下将1. <beans xmlns="/config/1.0">2. <broker useJmx="true" >改为1. <beans>2. <broker useJmx="true" xmlns="/config/1.0">即可5.步骤五: 将xbean-spring-2.7.jar (或者是2.8) 复制到jboss-4.0.5.GA\server\default\lib下面三使用整合完毕的ActiveMQ作为ds绑定到JBoss的JNDI服务。
编写jboss-4.0.5.GA\server\default\depoly\activemq-ds.xmlxml 代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE connection-factoriesPUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN""/j2ee/dtd/jboss-ds_1_5.dtd"><connection-factories><tx-connection-factory><jndi-name>activemq/QueueConnectionFactory</jndi-name><xa-transaction/><track-connection-by-tx/><rar-name>activemq-ra.rar</rar-name><connection-definition>javax.jms.QueueConnectionFactory</connectio n-definition><ServerUrl>tcp://localhost:61616</ServerUrl><min-pool-size>1</min-pool-size><max-pool-size>200</max-pool-size><blocking-timeout-millis>30000</blocking-timeout-millis><idle-timeout-minutes>3</idle-timeout-minutes></tx-connection-factory><tx-connection-factory><jndi-name>activemq/TopicConnectionFactory</jndi-name><xa-transaction/><track-connection-by-tx/><rar-name>activemq-ra.rar</rar-name><connection-definition>javax.jms.TopicConnectionFactory</connection -definition><ServerUrl>tcp://localhost:61616</ServerUrl><min-pool-size>1</min-pool-size><max-pool-size>200</max-pool-size><blocking-timeout-millis>30000</blocking-timeout-millis><idle-timeout-minutes>3</idle-timeout-minutes></tx-connection-factory><mbean code="org.jboss.resource.deployment.AdminObject" name="act ivemq.queue:name=outboundQueue"><attribute name="JNDIName">activemq/queue/outbound</attribute> <depends optional-attribute-name="RARName">jboss.jca:service=RA RDeployment,name='activemq-ra.rar'</depends><attribute name="Type">javax.jms.Queue</attribute><attribute name="Properties">PhysicalName=queue.outbound</attribu te></mbean><mbean code="org.jboss.resource.deployment.AdminObject" name="act ivemq.topic:name=inboundTopic"><attribute name="JNDIName">activemq/topic/inbound</attribute><depends optional-attribute-name="RARName">jboss.jca:service=RA RDeployment,name='activemq-ra.rar'</depends><attribute name="Type">javax.jms.Topic</attribute><attribute name="Properties">PhysicalName=topic.inbound</attribute> </mbean></connection-factories>启动JBoss.如果看见以下信息就表示ActiveMQ已经成功启动,并且使用上面的ds配置文件成功地将topic/queue绑定到了JNDI服务上。