activeMQ学习指南 - Java基础调用
安装和运行
https://www.yangzhenyu.com.cn/19336/
Java 基础例子
使用idea建立一个Maven项目
Maven 代码
pom.xml
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.0</version> </dependency>
|
常用变量
Consumer.java
package cn.com.yangzhenyu;
public class Constants {
public static final String MQ_NAME = "mq";
public static final String MQ_PASSWORD = "mq_password";
public static final String MQ_BROKET_URL = "tcp://127.0.0.1:61616";
public static final String QUEUE_NAME = "yzy_queue"; }
|
生产者
Producer.java
package cn.com.yangzhenyu;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Producer { public static void main(String[] args) { ConnectionFactory factory; Connection connection = null; Session session; Destination destination; MessageProducer messageProducer; try { factory = new ActiveMQConnectionFactory(Constants.MQ_NAME, Constants.MQ_PASSWORD, Constants.MQ_BROKET_URL); connection = factory.createConnection(); connection.start(); session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue(Constants.QUEUE_NAME); messageProducer = session.createProducer(destination); for (int i = 0; i < 5; i++) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }
TextMessage message = session.createTextMessage("我是yzy,这是我的第" + (i + 1) + "个消息!"); messageProducer.send(message); session.commit();
}
} catch (JMSException e) { e.printStackTrace(); } finally { if (connection != null) { try { connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } } }
|
消费者
Consumer.java
package cn.com.yangzhenyu;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Consumer { public static void main(String[] args) { ConnectionFactory connectionFactory; Connection connection = null; Session session; Destination destination; try { connectionFactory = new ActiveMQConnectionFactory(Constants.MQ_NAME, Constants.MQ_PASSWORD, Constants.MQ_BROKET_URL); connection = connectionFactory.createConnection(); connection.start(); session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue(Constants.QUEUE_NAME); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { try { if (message instanceof TextMessage) { System.out.println(((TextMessage) message).getText()); } } catch (JMSException e) { e.printStackTrace(); } } }); } catch (JMSException e) { e.printStackTrace(); } } }
|
运行
- 先运行Consumer.main();
- 再运行Producer.main();
运行结果如下:
Consumer 收到消息:
我是yzy,这是我的第1个消息! 我是yzy,这是我的第2个消息! 我是yzy,这是我的第3个消息! 我是yzy,这是我的第4个消息! 我是yzy,这是我的第5个消息!
|