安装ActiveMQ
ActiveMQ下载地址:http://activemq.apache.org/download.html
进去之后点击这个
然后下载Windows版本的
下载之后解压出来,然后去bin目录下面,有一个win32,win64,根据你们的电脑选择,然后安置shift+加鼠标右击,在此处打开命令窗口,然后选择
执行成功,不要关闭窗口,
创建Maven项目
首先看看目录结构,是一个普通的maven项目
```![这里写图片描述](https://img-blog.csdn.net/20180816150056574?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NjU3MDg5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
创建一个生产者类(MsgProducer)
<div class="se-preview-section-delimiter"></div>
package com.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
*
* @Description: Message Producer
* @author: Bing Yue
*/
public class MsgProducer {
private static final String BROKER_URL="tcp://localhost:61616";
private static final String SUBJECT = "test-queue";
public static void main(String[] args) throws JMSException, InterruptedException{
//创建连接工厂
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(BROKER_URL);
//获得连接
Connection conn = connectionFactory.createConnection();
//start
conn.start();
//创建Session,此方法第一个参数表示会话是否在事务中执行,第二个参数设定会话的应答模式
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建队列
Destination dest = session.createQueue(SUBJECT);
//创建消息生产者
MessageProducer producer = session.createProducer(dest);
for (int i=0;i<100;i++) {
//初始化一个mq消息
TextMessage message = session.createTextMessage("这是第 " + i+" 条消息!");
//发送消息
producer.send(message);
System.out.println("send message:消息"+i);
//暂停3秒
Thread.sleep(3000);
}
//关闭mq连接
conn.close();
}
public static void sendMsg(){
}
}
创建一个消费者类(MsgConsumer )
<div class="se-preview-section-delimiter"></div>
package com.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
*
* @Description: Message Consumer
* @author: Bing Yue
*/
public class MsgConsumer implements MessageListener {
private static final String BROKER_URL="tcp://localhost:61616";
private static final String SUBJECT = "test-queue";
public static void main(String[] args) throws JMSException{
//创建连接工厂
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(BROKER_URL);
//获得连接
Connection conn = connectionFactory.createConnection();
//start
conn.start();
//创建Session,此方法第一个参数表示会话是否在事务中执行,第二个参数设定会话的应答模式
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建队列
Destination dest = session.createQueue(SUBJECT);
//创建消息生产者
MessageConsumer consumer = session.createConsumer(dest);
//初始化MessageListener
MsgConsumer msgConsumer = new MsgConsumer();
//给消费者设定监听对象
consumer.setMessageListener(msgConsumer);
}
@Override
/**
* 消费者需要实现MessageListener接口
* 接口有一个onMessage(Message message)需要在此方法中做消息的处理
*/
public void onMessage(Message msg) {
TextMessage txtMessage = (TextMessage)msg;
try {
System.out.println("get message:" + txtMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
然后是pom.xml文件
<div class="se-preview-section-delimiter"></div>