一:安装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简单案列已经测试完了