ActiveMQ实战之 Queue点对点消息

[size=x-large][align=center]前言:ActiveMQ消息模式点对点编码[/align][/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();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值