ActiveMQ简单入门实例

一、下载MQ

官方网站下载:http://activemq.apache.org/
我用的是 apache-activemq-5.15.0-bin

二、安装

我用的是64位所以双击 apache-activemq-5.15.0\bin\win64 下 activemq.bat

登录 登陆:http://localhost:8161/admin/, 默认账户密码 admin = admin ,创建一个Queue,命名为FirstQueue

三、环境

创建项目 thomas

导入apache-activemq-5.8.0\lib目录  下的
activemq-broker-5.8.0.jar
activemq-client-5.8.0.jar
geronimo-j2ee-management_1.1_spec-1.0.1.jar
geronimo-jms_1.1_spec-1.1.1.jar
slf4j-api-1.6.6.jar
到项目中

四、发送端

package com.thomas.test;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
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;

public class TestMQSend {

	
	public void sendMQ(String news) {
		
		//连接工厂
		ConnectionFactory connectionFactory;
		
		//连接
		Connection connection = null;
		
		//收发线程
		Session session;	
		
		//接收地址
		Destination destination;
		
		//发方
		MessageProducer messageProducer;
		
		//构造连接工厂实例化对象,利用Active实现
		connectionFactory = 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);
			//设置接受地址
			destination = session.createQueue("FirstQueue");
			//获得发送方
			messageProducer = session.createProducer(destination);
			//设置是否持久化(根据实际设置)
			messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
			
			
			
			for(int i = 0;i < 5 ;i ++){
				//设置消息内容
				TextMessage message = session.createTextMessage("MQ信息 第"+ i + "轮次:" + news);
				System.out.println("发送MQ信息 第"+ i + "轮次:" + news);
				//发送消息
				messageProducer.send(message);
			}
			
			session.commit();
			
		} catch (JMSException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{			
			
			if(connection != null){
				
				try {
					connection.close();
				} catch (JMSException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
		
	}
	
	
	
	public static void main(String[] args) {
		TestMQSend mq = new TestMQSend();
		mq.sendMQ("测试MQ啦啦啦");
	}
}

 五、接收端

package com.thomas.test;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class TestMQRe {

	
	public void receiveMQ(){

		
		//连接工厂
		ConnectionFactory connectionFactory;
		
		//连接
		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.TRUE, Session.AUTO_ACKNOWLEDGE);
				
				//设置接受地址
				destination = session.createQueue("FirstQueue");
				
				//创建一个接受者
				consumer = session.createConsumer(destination);
				
				//循环接受
				while(true){
					
					TextMessage message = (TextMessage) consumer.receive(100000);
					if(message != null){
						
						System.out.println("接受"+message.getText());
					}else{
						
						break;
					}
				}
				
			} catch (JMSException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally{
				
				if(connection != null){
					
					try {
						connection.close();
					} catch (JMSException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}

		

	}
	
	public static void main(String[] args) {
		TestMQRe re = new TestMQRe();
		re.receiveMQ();
	}
}

 六、结果

 

发送端:
发送MQ信息 第0轮次:测试MQ啦啦啦
发送MQ信息 第1轮次:测试MQ啦啦啦
发送MQ信息 第2轮次:测试MQ啦啦啦
发送MQ信息 第3轮次:测试MQ啦啦啦
发送MQ信息 第4轮次:测试MQ啦啦啦


接收端:
接受MQ信息 第0轮次:测试MQ啦啦啦
接受MQ信息 第1轮次:测试MQ啦啦啦
接受MQ信息 第2轮次:测试MQ啦啦啦
接受MQ信息 第3轮次:测试MQ啦啦啦
接受MQ信息 第4轮次:测试MQ啦啦啦

 

posted @ 2017-10-09 15:16  BBJB  阅读(316)  评论(1编辑  收藏  举报