activemq测试类
来源:互联网 发布:广州淘宝公司招聘 编辑:程序博客网 时间:2024/06/05 05:34
1、创建一个maven项目,pom.xml配置如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.mq.maven</groupId>
<artifactId>activeMQ_helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.14.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
2、创建测试类:
1、生产者
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Test;
public class Product {
public static void main(String[] args) {
try {
// 创建mq工程类
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
// 获取链接
Connection connection = connectionFactory.createConnection();
// 获取session
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
// 创建一个消息队列
Queue queue = session.createQueue("helloworld");
// 创建生产者
MessageProducer producer = session.createProducer(queue);
System.out.println("生产者。。。。。。。。。。。");
for (int i = 0; i < 10; i++) {
TextMessage message = session.createTextMessage("hello world !" + i);
System.out.println(message.getText());
// 发送消息
producer.send(message);
}
// 提交事物
session.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
@Test
public void testQueueSender() {
try {
// 创建mq工程类
QueueConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
// 获取链接
QueueConnection connection = connectionFactory.createQueueConnection();
connection.start();
// 获取session
QueueSession queueSession = connection.createQueueSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
// 创建一个消息队列
Queue queue = queueSession.createQueue("helloworld2");
// 创建生产者
QueueSender createSender = queueSession.createSender(queue);
// 设置持久化模式
// createSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
for (int i = 0; i < 10; i++) {
String message = "发送消息第" + (i + 1) + "条";
MapMessage map = queueSession.createMapMessage();
map.setString("text", message);
map.setLong("time", System.currentTimeMillis());
System.out.println(map);
createSender.send(map);
}
// 提交事物
queueSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
// 发送次数
public static final int SEND_NUM = 5;
// tcp 地址
public static final String BROKER_URL = "tcp://localhost:61616";
// 目标,在ActiveMQ管理员控制台创建 http://localhost:8161/admin/queues.jsp
public static final String DESTINATION = "hoo.mq.topic";
@Test
public void testPublisherTopic() throws Exception {
TopicConnection connection = null;
TopicSession session = null;
try {
// 创建链接工厂
TopicConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, BROKER_URL);
// 通过工厂创建一个连接
connection = factory.createTopicConnection();
// 启动连接
connection.start();
// 创建一个session会话
session = connection.createTopicSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
// 创建一个消息队列
Topic topic = session.createTopic(DESTINATION);
// 创建消息发送者
TopicPublisher publisher = session.createPublisher(topic);
// 设置持久化模式
publisher.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
for (int i = 0; i < SEND_NUM; i++) {
String message = "发送消息第" + (i + 1) + "条";
MapMessage map = session.createMapMessage();
map.setString("text", message);
map.setLong("time", System.currentTimeMillis());
System.out.println(map);
publisher.send(map);
}
// 提交会话
session.commit();
} catch (Exception e) {
throw e;
} finally {
// 关闭释放资源
if (session != null) {
session.close();
}
if (connection != null) {
connection.close();
}
}
}
}
2、消费者
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Test;
public class Customer {
public static void main(String[] args) throws Exception {
ConnectionFactory conFactory = new ActiveMQConnectionFactory();
// 创建链接
Connection connection = conFactory.createConnection();
// 开启连接
connection.start();
// 创建sesssion
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
// 创建消息队列
Queue queue = session.createQueue("helloworld");
// 创建消费者
MessageConsumer consumer = session.createConsumer(queue);
System.out.println("消费者。。。。。。。。。。。");
while (true) {
TextMessage message = (TextMessage) consumer.receive(1000);
if (message != null) {
String str = message.getText();
System.out.println(str);
} else {
break;
}
}
}
@Test
public void customerLinster() throws Exception {
ConnectionFactory conFactory = new ActiveMQConnectionFactory();
// 创建链接
Connection connection = conFactory.createConnection();
// 开启连接
connection.start();
// 创建sesssion
Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
// 创建消息队列
Queue queue = session.createQueue("helloworld");
// 创建消费者
MessageConsumer consumer = session.createConsumer(queue);
System.out.println("消费者。。。。。。。。。。。");
// 设置监听器,实时监控,只要有生产,消费者马上消费
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage msgMessage = (TextMessage) message;
String text = msgMessage.getText();
System.out.println(text);
} else if (message instanceof MapMessage) {
MapMessage msgMessage = (MapMessage) message;
System.out.println(msgMessage.getString("text"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
while (true) {
// 不能让junit线程死掉
}
}
@Test
public void testQueueReceiver() {
try {
// 创建mq工程类
QueueConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
// 获取链接
QueueConnection connection = connectionFactory.createQueueConnection();
// 启动链接
connection.start();
// 获取session
QueueSession queueSession = connection.createQueueSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
// 创建一个消息队列
Queue queue = queueSession.createQueue("helloworld2");
// 创建生产者
QueueReceiver receiver = queueSession.createReceiver(queue);
receiver.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
MapMessage map = (MapMessage) message;
try {
System.out.println(map.getString("text"));
} catch (Exception e) {
e.printStackTrace();
}
}
});
// 提交会话
queueSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
// tcp 地址
public static final String BROKER_URL = "tcp://localhost:61616";
// 目标,在ActiveMQ管理员控制台创建 http://localhost:8161/admin/queues.jsp
public static final String TARGET = "hoo.mq.topic";
@Test
public void testCreateSubscriber() throws Exception {
TopicConnection connection = null;
TopicSession session = null;
try {
// 创建链接工厂
TopicConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, BROKER_URL);
// 通过工厂创建一个连接
connection = factory.createTopicConnection();
// 启动连接
connection.start();
// 创建一个session会话
session = connection.createTopicSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
// 创建一个消息队列
Topic topic = session.createTopic(TARGET);
// 创建消息制作者
TopicSubscriber subscriber = session.createSubscriber(topic);
subscriber.setMessageListener(new MessageListener() {
public void onMessage(Message msg) {
if (msg != null) {
MapMessage map = (MapMessage) msg;
try {
System.out.println(map.getLong("time") + "接收#" + map.getString("text"));
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
// 提交会话
session.commit();
} catch (Exception e) {
throw e;
} finally {
// 关闭释放资源
if (session != null) {
session.close();
}
if (connection != null) {
connection.close();
}
}
}
}
- activemq测试类
- ActiveMQ持久化测试
- ActiveMQ 安装、测试全过程
- Jmeter测试ActiveMQ
- ActiveMQ性能测试
- 测试接收 ActiveMq 消息
- 测试ActiveMQ主从复制
- ActiveMQ搭建与测试
- ActiveMQ测试工具
- ActiveMQ测试实例
- 即时通讯-测试ActiveMQ服务器
- Spring+ActiveMQ整合测试
- ActiveMQ性能测试
- ActiveMQ极限性能参数测试结果
- 测试发送 ActiveMq topic消息
- 消息队列activemq小测试
- ActiveMQ之简单测试代码
- 【activeMQ】ActiveMQ 发送接收消息(含安装运行测试)
- HDU --- 5901 Count primes 【求1e11内的素数模板题】
- hdu1142 A Walk Through the Forest
- Makefile基本命名规则
- json
- css3-transform动画样式
- activemq测试类
- AOP实现的解决流程
- Tensorflow Placeholder 传入值
- tcp四种定时器
- Vuforia sdk 之物体识别
- linux环境下git安装
- 正确使用css的相对定位
- MYSQL外键的使用以及优缺点
- LeetCode-15-3Sum 贪心