消息队列插件ActiveMQ的简单用例

一:安装ActiveMQ

1.下载链接

官网下载地址   注意:第五代的ActiveMQ需要使用jdk1.8的版本

2.安装测试

打开目录如下:bin-->activemq.bat   运行之后,打开链接 http://localhost:8161/admin/ 默认用户名密码admin,显示如下

 

则说明安装成功


二:创建简单的案列

1.创建发送者

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.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.component.jms.JmsProducer;


/**
 * 消息的生产者
 * @author dexin.qiao
 * 2018-1-17
 */
public class JmsProducter {
	
	//默认连接用户名
	private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	//默认连接密码
	private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	//默认连接地址
	private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;
	//发送的消息数量
	private static final int SENDNUM = 10;
	
	/**
	 * 发送消息
	 */
	public static void sendMessage(Session session,MessageProducer messageProducer){
		for(int i = 0; i<JmsProducter.SENDNUM; i++){
			//创建一条文本文件
			try {
				TextMessage message = session.createTextMessage("ActiveMQ 发送第" + i + "条消息");
				System.out.println("发送消息:" + i);
				
				//通过消息生产者发出消息
				messageProducer.send(message);
			} catch (JMSException e) {
				e.printStackTrace();
			}
			
		}
	}
	
	public static void main(String[] args) {
		//连接工厂
		ConnectionFactory connectionFactory;
			
		//连接
		Connection connection = null;
		//会话 发送或者接收消息的线程
		Session session;
		//消息的目的地
		Destination destination;
		//消息生产者
		MessageProducer messageProducer ;
		//实例化连接工厂
		connectionFactory = new ActiveMQConnectionFactory(JmsProducter.USERNAME,
				JmsProducter.PASSWORD,JmsProducter.BROKEURL);
		
		try {
			//通过连接工厂获取连接
			connection = connectionFactory.createConnection();
			//启动连接
			connection.start();
			//创建session
			session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
			//创建一个叫"你好,我的消息队列"的消息队列
			destination = session.createQueue("你好,我的消息队列");
			//创建消息生产者
			messageProducer = session.createProducer(destination);
			//发送消息
			sendMessage(session, messageProducer);
			
			session.commit();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(connection != null){
				try {
					connection.close();
				} catch (Exception e2) {
					e2.printStackTrace();
				}
			}
		}
	}
}

2.创建消费者

package com.activemq;

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 JmsConsumer {
	
	private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接用户名
    private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接密码
    private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;//默认连接地址
	
    public static void main(String[] args) {
    	//连接工厂
		ConnectionFactory connectionFactory;
			
		//连接
		Connection connection = null;
		//会话 发送或者接收消息的线程
		Session session;
		//消息的目的地
		Destination destination;
		//消息的消费者或者接受者
		MessageConsumer consumer;
		//实例化连接工厂
		connectionFactory = new ActiveMQConnectionFactory(JmsConsumer.USERNAME,
				JmsConsumer.PASSWORD,JmsConsumer.BROKEURL);
		
		try {
			//获取连接
			connection = connectionFactory.createConnection();
			//启动连接
			connection.start();
			//创建session
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			//创建一个连接"你好,我的消息队列"的消息队列
			destination = session.createQueue("你好,我的消息队列");
			//创建消息消费者
			consumer = session.createConsumer(destination);
			
			while(true){
				TextMessage textMessage = (TextMessage) consumer.receive(10000);
				if(textMessage != null){
					System.out.println("收到的消息:" + textMessage.getText());
				}else{
					break;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	

}

:运行测试

1.发送者运行

运行结果控制台打印如下


此时我们可以在浏览器中看到消息队列的信息



2.接受者运行

运行结果控制台打印 如下

此时我们可以在浏览器中看到消息队列的信息


发送者发送的消息也已经被消费者消费了


至此,我们的ActiveMQ简单案列已经测试完了

猜你喜欢

转载自blog.csdn.net/qiaoxin666/article/details/79087640
今日推荐