java实现activemq的demo案例百度网盘下载
自己了解下。记录一下笔记。下次就会有spring整合activemq。如果也有正在学的,我们一起讨论讨论哈。
这个以前通过jdbc操作数据库的通用步骤。
这个是操作activemq的 通用步骤:
一、队列的生产者
// 1创建连接工厂,安装给定的url,采用默认的账号和密码
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
// 2、通过连接工厂,获得连接connection并访问
Connection connection = activeMQConnectionFactory.createConnection();
connection.start();
// 3、创建会话Session
// 两个参数 第一个参数叫事务/第二个参数叫签收
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 4、创建目的地,(具体是队列还是主题topic)
Queue queue = session.createQueue(QUEUE_NAME);
// 5、创建消息的生产者
MessageProducer messageProducer = session.createProducer(queue);
// 6、通过使用messageProducer生产3条消息发送到MQ的队列里面
for (int i = 1; i <= 3; i++) {
// 7、创建消息
TextMessage textMessage = session.createTextMessage("我要发送消息了" + i);// 创建消息
// 8、messageProducer发送消息到mq
messageProducer.send(textMessage);
}
// 9、关闭资源
messageProducer.close();
session.close();
connection.close();
System.out.println("消息发送到MQ完成");
二、队列的消费者
// 1创建连接工厂,安装给定的url,采用默认的账号和密码
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
// 2、通过连接工厂,获得连接connection并访问
Connection connection = activeMQConnectionFactory.createConnection();
connection.start();
// 3、创建会话Session
// 两个参数 第一个参数叫事务/第二个参数叫签收
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 4、创建目的地,(具体是队列还是主题topic)
Queue queue = session.createQueue(QUEUE_NAME);
// 5、创建消息的消费者
MessageConsumer messageConsumer = session.createConsumer(queue);
// ---------------------第一种 receive接受的方法。
// 同步阻塞方式,订阅者或者接受者调用MessageConsumer的receive()方法来接受消息,receive方法在能够接受到消息之前(或超时之前)将一直阻塞。
// while (true) {
// TextMessage textMessage = (TextMessage) messageConsumer.receive(4000L);
// if (null != textMessage) {
// System.out.println("消费者接收到的消息:" + textMessage.getText());
//
// } else {
// break;
// }
// }
// messageConsumer.close();
// session.close();
// connection.close();
// ---------------------第二种 通过监听的方法来消费消息
// 异步非阻塞方式(监听器 onMessage())
// 订阅者或者接受者通过MessageConsumer的setMessageListener(MessageListener
// listener)注册一个消息监听器,
// 当消息到达后,系统自动调用监听器MeaasgeListener的Message(Message message)方法
messageConsumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
if (null != message && message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("消费者接收到的消息:" + textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
System.in.read();// 保持控制台灯不灭。
messageConsumer.close();
session.close();
connection.close();