java消息队列ActiveMQ之Comsumer
来源:互联网 发布:mac u盘复制文件 编辑:程序博客网 时间:2024/05/21 09:17
1、需要添加在上一篇博客中说到的依赖jar包
2、创建创建消费者
package com.activemq.demo;import java.util.concurrent.atomic.AtomicInteger;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.JMSException;import javax.jms.MessageConsumer;import javax.jms.Queue;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;public class Comsumer { private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; private static final String BROKEN_URL = "tcp://192.168.0.0:61616"; ConnectionFactory connectionFactory; Connection connection; Session session; ThreadLocal<MessageConsumer> threadLocal = new ThreadLocal<>(); AtomicInteger count = new AtomicInteger(); public void init() { try { connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKEN_URL); connection = connectionFactory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); } catch (JMSException e) { e.printStackTrace(); } } public void getMessage(String disname) { try { Queue queue = session.createQueue(disname); MessageConsumer consumer = null; if (threadLocal.get() != null) { consumer = threadLocal.get(); } else { consumer = session.createConsumer(queue); threadLocal.set(consumer); } while (true) { Thread.sleep(1000); TextMessage msg = (TextMessage) consumer.receive(); if (msg != null) { msg.acknowledge(); System.out.println("接收到消息:" + msg.getText() + " || " + count.getAndIncrement()); } else { break; } } } catch (JMSException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } }}
3、测试
package com.activemq.demo;public class TestGetMsg { public static void main(String[] args) { Comsumer comsumer = new Comsumer(); comsumer.init(); TestGetMsg testGetMsg = new TestGetMsg(); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } new Thread(testGetMsg.new ProductorMq(comsumer)).start(); } private class ProductorMq implements Runnable { Comsumer comsumer; public ProductorMq(Comsumer comsumer) { this.comsumer = comsumer; } @Override public void run() { while (true) { comsumer.getMessage("LGZ-MQ");// try {// Thread.sleep(500);// } catch (InterruptedException e) {// e.printStackTrace();// } } } }}
阅读全文
0 0
- java消息队列ActiveMQ之Comsumer
- 简单实现Java消息队列之activemq
- java消息队列ActiveMQ之Producter
- 消息队列之ActiveMQ
- Java消息队列--ActiveMq
- ActiveMQ消息队列之java消息生产与消费
- JMS之消息队列 ActiveMQ
- JMS消息队列之ActiveMQ
- java消息队列 ActiveMQ实例
- Java消息队列--ActiveMQ 实战
- Java消息队列--ActiveMq 实战
- Java消息队列--ActiveMq 实战
- Java消息队列--ActiveMq 实战
- JMS之Spring +activeMQ实现消息队列
- 消息队列中间件之ActiveMQ初识
- 分布式系统基础-消息队列之ActiveMQ
- java消息队列ActiveMQ的简单使用
- java消息队列ActiveMQ的简单使用
- VC++ 只运行一个程序实例
- centos 7 搭建mysql数据库
- reactjs 编写一个简单的图片轮播图
- R语言绘制ROC曲线如何画在一个图中
- MySQL中单句实现无限层次父子关系查询
- java消息队列ActiveMQ之Comsumer
- Eclipse | Eclipse安装中文版本教程
- 利用基站定位手机
- BZOJ2286 [Sdoi2011]消耗战 【虚树 + 树形Dp】
- 在mybatis里面取别名
- 小东吖 之 java 基本数据与包装类
- Linux安装配置JDK
- iOS开发之QQ, 在APP中打开指定qq聊天界面的方法
- c++静态类实现