消息队列与Java ActiveMQ安装

安装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>

猜你喜欢

转载自blog.csdn.net/qq_39657089/article/details/81741923
今日推荐