MQ-ACTIVEMQ概述及定义(三)

3 篇文章 0 订阅
2 篇文章 0 订阅

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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值