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啦啦啦

浙公网安备 33010602011771号