ActiveMQ使用文档.doc_第1页
ActiveMQ使用文档.doc_第2页
ActiveMQ使用文档.doc_第3页
ActiveMQ使用文档.doc_第4页
ActiveMQ使用文档.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ActiveMQ 使用文档一、为什么使用ActiveMQ 在总线的设计中可能会使用到JMS(Java Message Service)通道, Java消息服务(JMS)超越了生产商专有的MOM(Message-Oriented-MiddleWare) API,它为企业消息传递提供了一套API。JMS的目标是提供一个标准API,使用Java语言,以生产商中立的方式来发送和接收消息。JMS API最小化了一个Java编程者应具备的企业消息传递的知识量,来开发复杂消息传递应用程序,而仍能维持一定的跨JMS提供者实现的可移植性。JMS本身不是一个MOM。它是一套API,抽象了消息传递客户端与MOM间的交互,类似于JDBC抽象了关系型数据库的交互。应用间的通信是通过应用1组织一个JMS消息使用JMS API发送到MOM,应用2通过JMS API接收到该消息进行处理,可以实现对消息同步或异步的处理,在我们的项目中是使用的MOM是ActiveMQ- 一个开源的消息中间件。二、总线中使用的ActiveMQ的版本及说明在总线中使用的ActiveMQ的版本是5.3.0,下载地址是/download.html,ActiveMQ需要的jdk的版本最低是1.5所以在安装ActiveMQ之前一定确定jdk的版本是1.5之后的,ActiveMQ5.3.0是免安装的下载完之后解压到相应的位置,打开根目录就会看到有以下文件:图一 ActiveMQ的目录格式* LICENSE包含ActiveMQ所使用库的license。* NOTICE它包含ActiveMQ使用库的版权信息* README.txt新手文档* webConsole-README.txt包含使用ActiveMQ Web Conslole的信息。* activemq-all-5.3.0.jar包含了ActiveMQ所有内容;方便使用它,在使用activeMQ的地方直接导入这一个jar包就够了。* bin包含了ActiveMQ的二进制/可执行文件;启动脚本也在该目录下* conf持有ActiveMQ所有配置信息* data日志文件和消息持久数据保存在此目录下。* docs包含一个简单的index.html文件,它指向ActiveMQ网址* example示例;我们将用它来快速测试ActiveMQ* liblib目录持有所有ActiveMQ所需的库* user-guide.html启动ActiveMQ和运行示例的简短指南* webappswebapps目录持有ActiveMQ web console和一些其它web相关的demo三、启动并使用ActiveMQ控制台 进入到ActiveMQbin目录下找到activemq.bat点击启动activeMQ,正常启动的界面如下:图二 ActiveMQ正常启动界面访问http:/localhost:8161/admin/index.jsp查看ActiveMQ的管理界面在该界面中可以添加、删除、清空查看队列主题的消息信息以及新建、删除主题和队列等功能,控制台的使用很简单这里不再赘述了。图三 ActiveMQ控制台四、从一个简单的实例看ActiveMQ的使用 该例子是一个简单的发送消息的例子:例子向ieslab.chen发送一条TextMessage消息,消息的内容是Hello world!借助控制台看一下:点击控制台上的Queue链接,然后可以看到一个name下面有个ieslab.chen的队列如图四所示:图四 通过控制台查看消息控制台中显示的Name:是队列的名字,Number Of Pending Messages是等待消费的消息的数量,Number Of Consumers是消费者的数量,Messages Enqueued是队列中的消息,Messages Dequeued是被消费的消息的数量,Views可以查看可以指定一个消费者,Operation指定了对该队列的操作:发送、清空、删除。点击这个队列的名字jms.ieslab.chen就可以看到这个队列中的消息点击某个消息就可以看到消息的详细信息如图五所示:图五 利用控制台查看消息的详细信息以下是实例中用到的代码:(注意*prop.setProperty(Context.PROVIDER_URL, tcp:/localhost:61616);/9这个地方一定要注意在activeMQ的根目录下有个conf文件夹下的activemq.xml是设置了activeMQ的详细信息下面有个关于连接的配置如下代码: 如果你的activemq.xml中也设置的tcp连接是localhost那你不能在代码中使用你自己的ip也就是说不能写成这样prop.setProperty(Context.PROVIDER_URL, tcp:/ 9:61616)(9是我的ip)。package com.ieslab.sendmessage;import java.util.Properties;import javax.jms.DeliveryMode;import javax.jms.JMSException;import javax.jms.Queue;import javax.jms.QueueConnection;import javax.jms.QueueConnectionFactory;import javax.jms.QueueSender;import javax.jms.QueueSession;import javax.jms.Session;import javax.jms.TextMessage;import javax.naming.Context;import javax.naming.InitialContext;public class sendmsg private QueueSession sendSession;private QueueSender sender;private QueueConnection connection;public sendmsg() try /* 设置连接属性 */Properties prop = new Properties();prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,org.apache.activemq.jndi.ActiveMQInitialContextFactory);prop.setProperty(Context.PROVIDER_URL, tcp:/localhost:61616);/9/ queue. topic. 必须要加的但是他的key是LoanRequestQ也就是传递给main函数的参数prop.setProperty(queue.ieslab.chen, jms.ieslab.chen);prop.setProperty(userName, admin);prop.setProperty(password, hello);/* 初始化上下文 */Context ctx = new InitialContext(prop);/* 创建连接工厂 */QueueConnectionFactory Factory = (QueueConnectionFactory) ctx.lookup(QueueConnectionFactory);/* 创建连接 */QueueConnection qconnection = Factory.createQueueConnection();qconnection.start();QueueSession qsession = qconnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);Queue queue = (Queue) ctx.lookup(ieslab.chen);QueueSender qsender = qsession.createSender(queue);/* 初始化类 */this.connection = qconnection;this.sendSession = qsession;this.sender = qsender; catch (Exception e) e.printStackTrace();System.exit(0);public void messagesend(String text) try TextMessage msg = sendSession.createTextMessage(text);/sender.setDisableMessageTimestamp(false);/msg.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); sender.send( msg );/* 发送对象类 */Order order = new Order();/ObjectMessage objmsg = sendSession.createObjectMessage();/objmsg.setObject(Serializable) order);/sender.send(objmsg); catch (JMSException jmse) jmse.printStackTrace();System.exit(1);/public void test() /Order order = new Order();/ObjectMessage objmsg;/try /objmsg = sendSession.createObjectMessage();/objmsg.setObject(Serializable) order);/sender.send(objmsg);/ catch (JMSException e) / TODO Auto-generated catch block/e.printStackTrace();/private void exit() try connection.close(); catch (JMSException jmse) jmse.printStackTrace();System.exit(0);public static void main(String args) try sendmsg smsg = new sendmsg();smsg.messagesend(Hello World!); catch (Exception e) e.printStackTrace();System.exit(1);五、在mule中配置activeMQ因为mule集成了activeMQ所以在mule中使用ac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论