概念:两种JMS的实现方法:
Topic==>消息主题 是发布/订阅 机制 一个消息产生多个对应 1:N publish/subscribe
Queue==>消息队列 是点到点 一个消息产生一个对应 1:1 point-to-point
activeMQ 的 Queue 的生产和消费
一、生产
1. 创建链接Q服务器
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
Connection connection = connectionFactory.createConnection();
connection.start();
2.创建session,并设置事务和策略
Session session = connection.createSession(事务参数,策略参数);
3.定位队列
Destination destination = session.createQueue(队列名称);
4.创建产品生产对象
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);//在Q关闭时会序列到默认或指定位置,重启后恢复
//producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
5.创建 message 并发送到Queue 中
Message message = session.createMessage("内容");
producer.send(message);
session.commit();//用于事务时
6.close
producer.close();
session.close();
connection.close();
二、消费 (需要实现MessageListener接口的onMessage(Message message)方法 )
1. 创建链接Q服务器
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
Connection connection = connectionFactory.createConnection();
connection.start();
2.创建session,并设置事务和策略
Session session = connection.createSession(事务参数,策略参数);
3.定位队列
Destination destination = session.createQueue(队列名称);
4.创建产品消费对象
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(this);
5.从Queue中取出消息
Message message = consumer.receive(1000);
session.commit();//用于事务时
6.close
consumer.close();
session.close();
connection.close();