ActiveMQ学习笔记之HelloWorld

来源:互联网 发布:手机创业软件 编辑:程序博客网 时间:2024/05/18 02:37

1、首先去官方下载activeMQ,我用的版本是5.5.1

http://activemq.apache.org/download.html


2、打开压缩包,展现以下目录结构


3、打开bin目录,启动activemq.bat文件,开启activemq服务


4、访问http://localhost:8161/ 进入manager页面,创建一个队列。注意该队列名我们之后会在代码中用到。


5、开始写代码,先写一个Receiver.java 类,这个类的作用是监听一个IP和端口,接送信息。

package com.lvpeng.activemq.test;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.MessageConsumer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;public class Receiver {public static void main(String[] args) {//链接工厂ConnectionFactory connectionFactory;//客户端到Provider的链接Connection connection = null;//一个发送或者接受消息的线程Session session;//消息目的地Destination destination;//消费者 消息接受着MessageConsumer consumer;connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");try {//获取链接对象connection = connectionFactory.createConnection();//启动connection.start();//获取操作链接session = connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);destination = session.createQueue("FirstQueue");consumer = session.createConsumer(destination);while(true){//设置接受者接受消息的时间 为了便于测试 这里谁定为10sTextMessage message = (TextMessage)consumer.receive(100000);if(null != message){System.out.println("收到消息:"+message.getText());}else{break;}}} catch (Exception e) {e.printStackTrace();} finally{try {if(null != connection)connection.close();} catch (Exception e) {}}}}

6、然后再写一个sender.java 这个类的作用就是给我们制定的ip和端口发送消息。

package com.lvpeng.activemq.test;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.DeliveryMode;import javax.jms.Destination;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;public class Sender {private static final int SEND_NUMBER = 5;public static void main(String[] args) {//连接工厂 JMS用他创建链接ConnectionFactory connectionFactory = null;//JMS客户端带哦Provider的链接Connection connection = null;//一个发送或者接受请求的线程Session session = null;//消息的目的地 消息发送给谁Destination destination = null;;//消息发送者MessageProducer producer = null;;//构造connectionFactory 此处采用ActiveMq的实现jarconnectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");try {//构造从工厂得到链接对象connection = connectionFactory.createConnection();//启动connection.start();//获取操作链接session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);//获取session注意参数值xingbo.xu-queue是一个服务的队列 需要在actionMQ的console配置destination = session.createQueue("FirstQueue");//得到消息生成者[发送者]producer = session.createProducer(destination);//设置不持久化 此处学习 实际根据项目决定producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//构造消息 此处写死 项目就是参数 或者方法获取sendMessage(session,producer);session.commit();} catch (Exception e) {e.printStackTrace();} finally{try {if(null != connection)connection.close();} catch (Exception e) {}}}public static void sendMessage(Session session, MessageProducer producer) {try {for(int i=1;i<=SEND_NUMBER;i++){TextMessage message = session.createTextMessage("ActiveMQ 发送的消息 "+i);//发送消息到目的地System.out.println("发送消息:" + "ActiveMQ 发送的消息 "+i);producer.send(message);}} catch (Exception e) {throw new RuntimeException(e.getMessage());}}}

7、执行sender.java 向服务器发送消息


发送消息:ActiveMQ 发送的消息 1发送消息:ActiveMQ 发送的消息 2发送消息:ActiveMQ 发送的消息 3发送消息:ActiveMQ 发送的消息 4发送消息:ActiveMQ 发送的消息 5

查看队列的变化:


8、启动Receiver.java 看是否可以接受到消息

收到消息:ActiveMQ 发送的消息 1收到消息:ActiveMQ 发送的消息 2收到消息:ActiveMQ 发送的消息 3收到消息:ActiveMQ 发送的消息 4收到消息:ActiveMQ 发送的消息 5


再次观察队列:


9、完成



10:、发布订阅模式参考网址:

http://www.open-open.com/lib/view/open1328079945062.html


原创粉丝点击