[size=x-large][align=center]前言:ActiveMQ消息模式点对点编码[/align][/size]
[color=blue][size=large]运行:先运行消费者在开启消息生产者即可接收到消息[/size][/color]
[size=large]消息生产者[/size]
[size=large]消息消费者[/size]
[color=blue][size=large]运行:先运行消费者在开启消息生产者即可接收到消息[/size][/color]
[size=large]消息生产者[/size]
/**
* @摘要 测试发送单条数据的类
*/
public class ZMQOneSendTest{
public static void main(String[] args) throws Exception {
//1 .开始建立连接时间
Long nStartTime = System.currentTimeMillis();
// 2.建立连接工厂
org.apache.activemq.ActiveMQConnectionFactory nFactory = new org.apache.activemq.ActiveMQConnectionFactory("tcp://localhost:61616");
// 3.用工厂建立Connection连接
javax.jms.Connection nConnection = nFactory.createConnection();
// 4.创建会话Session,不启动事务,签收模式为自动确认模式
javax.jms.Session nSession = nConnection.createSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE);
// 5.创建队列
javax.jms.Destination nDestination = nSession.createQueue("123");
// 6.创建生产者
javax.jms.MessageProducer nProducer = nSession.createProducer(nDestination);
// 7.设置持久化
nProducer.setDeliveryMode(javax.jms.DeliveryMode.PERSISTENT);
// 8.启动连接
nConnection.start();
// 9.查询开始时间
Long nStartSelectTime = System.currentTimeMillis();
// 10.查询结束时间
Long nEndSelectTime = System.currentTimeMillis();
// 11.创建消息
javax.jms.TextMessage nMessage = nSession.createTextMessage();
nMessage.setText("我是发送的数据");
// 12.发送开始时间
Long nStartSendTime = System.currentTimeMillis();
// 13.生产者发布消息
nProducer.send(nMessage);
// 14.消息结束时间
Long nEndSendTime = System.currentTimeMillis();
// 15.打印消息
System.out.println("已发送消息 "+nMessage);
// 16.关闭发布者、会话、连接
nProducer.close();
nSession.close();
nConnection.close();
// 17.计算时间
System.out.println("查询消息时间 "+(nEndSelectTime-nStartSelectTime));
System.out.println("发送消息时间"+(nEndSendTime-nStartSendTime));
System.out.println("总时间"+(nEndSendTime-nStartTime));
}
}
[size=large]消息消费者[/size]
public class ZMQReadTest {
public static void main(String[] args) throws javax.jms.JMSException {
// 1.建立连接工厂
org.apache.activemq.ActiveMQConnectionFactory nFactory = new org.apache.activemq.ActiveMQConnectionFactory("tcp://localhost:61616");
// 2.用工厂建立Connection连接
javax.jms.Connection nTopicConnection = nFactory.createConnection();
// 3.创建会话Session,不启动事务,签收模式为自动确认模式
javax.jms.Session nSession = nTopicConnection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
// 4.创建队列
javax.jms.Destination nDestination = nSession.createQueue("123");
// 5.创建消费者
javax.jms.MessageConsumer nConsumer = nSession.createConsumer(nDestination);
// 6.为消费者添加消息监听器,onMessage方法接收消息
nConsumer.setMessageListener(new javax.jms.MessageListener() {
public void onMessage(javax.jms.Message nMessage) {
try {
if (nMessage instanceof javax.jms.TextMessage) {
String nTextMessage = ((javax.jms.TextMessage) nMessage).getText();
System.out.println("收到的消息:" + nTextMessage);
}
} catch (javax.jms.JMSException e) {
e.printStackTrace();
}
}
});
// 7.开启连接
nTopicConnection.start();
}
}