1、在虚拟机上部署activemq
启动mq:
在浏览器上访问web页面:
账号:admin 密码:admin
2、创建一个maven项目activemq-producer,作为生产者,如下图:
在pom文件中引入jar包
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.15.4</version>
</dependency>
写一个简单的消息发送:
package com.ayb;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Producer {
public static void main(String[] args) {
ConnectionFactory factory=new ActiveMQConnectionFactory("tcp://192.168.86.129:61616");
Connection connection=null;
try {
connection=factory.createConnection();
connection.start();
//创建会话
Session session=connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
//创建队列,如果队列已存在则不会创建,first-queue是队列名
Destination destination=session.createQueue("first-queue");
MessageProducer messageProducer=session.createProducer(destination);
TextMessage textMessage=session.createTextMessage("Hello!菲菲");
messageProducer.send(textMessage);
session.commit();
session.close();
} catch (JMSException e) {
e.printStackTrace();
}finally {
try {
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
3、创建一个maven项目activemqconsumer,作为消费者
在pom文件中引入jar包
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.15.4</version>
</dependency>
写一个简单的消息消费:
package main.java.com.ayb;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Cousumer {
public static void main(String[] args) {
ConnectionFactory factory=new ActiveMQConnectionFactory("tcp://192.168.86.129:61616");
Connection connection=null;
try {
connection=factory.createConnection();
connection.start();
//创建会话
Session session=connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
//创建队列,如果队列已存在则不会创建,first-queue是队列名
Destination destination=session.createQueue("first-queue");
//创建消息接受者
MessageConsumer consumer=session.createConsumer(destination);
TextMessage textMessage=(TextMessage) consumer.receive();
System.out.println(textMessage.getText());
session.commit();
session.close();
} catch (JMSException e) {
e.printStackTrace();
}finally {
try {
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
4、在Producer中执行main方法,发送消息
然后会在消费端看到发送过去的消息:
ok,如此一个简单的消息队列案例就完成了