ActiveMQ简单使用介绍(一):未整合Spring情况下的介绍使用
2017-06-27 10:58
549 查看
ActiveMQ简单使用(一):整合Spring
在进行数据查询的时候,都会遇到一个问题:当查询的数据量过大,相同数据查询频次过多的时候,都会选择将其加入到缓存或者索引中,提高查询效率.
但是作为实际生产环境中,都会有一个后台的管理,进行相关数据的CRUD操作.如何保证后台CRUD操作能即时的将数据添加到相应的缓存或者索引库中呢,使用ActiveMQ就是一个比较合适的一个选择.
在进行ActiveMQ的相应使用的时候,我们需要先明白它的消息形式,分为:消息传递的类型;消息正文格式.下图就是其分类形式:
![](https://img-blog.csdn.net/20170627111327986?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvejI3MTUwMDAyOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
图上的各个参数的解释应该还是比较容易理解的,这个是从我自己写的xmind文档上截图的.
在使用的时候,针对不同的需求.可以进行相关的选择.对于五中消息正文格式,还是TextMessage这种消息正文格式使用的居多,各位按需选择即可.
在了解了其消息形式后,我们就进行下一步的使用.关于安装,在这里就不怎么介绍了,各位自行百度.
对了,在这里有个要说下,ActiveMQ是自带一个后台管理的,url:http://IP:8161/admin,这里的IP是安装了ActiveMQ的那台服务器的IP地址,port默认的是8161.各位可以自己进入进行相关的查看了解.
接下来,我们进入正题,ActiveMQ在JAVA中的使用:
我们在进行ActiveMQ的使用的时候,会有两个角色需要明白:Producer和Customer.
这个根据字面的意思也很好理解,一个是生产者,创建相应的ActiveMQ,以及需要传递的相关数据;一个是消费者,接收Producer传递的相关数据并进行相关的处理.
在进行Producer和Customer的相关书写的时候,可能初步看起来有点繁琐,代码量有点多,无从下手.但是其逻辑很清晰,按照其逻辑一步一步下去就行,而且都是固定代码.需要修改的地方其实是很少的.主要逻辑如下:
Producer:
1.创建ConnectionFactory对象,指明ip以及端口号,采用的是tcp协议,port为61616
2.使用ConnectionFactory对象创建Connection对象
3.开启连接,使用Connection对象的start方法
4.使用Connection对象创建Session对象
5.使用Session对象创建Destination对象(Topic或者Queue),需要指定一个列队的名称
6.使用Session对象创建Producer对象
7.使用Session对象创建TextMessage对象,传递要你发送的内容
8.使用Producer对象发送消息
9.关闭资源
代码如下:
Customer:
1.创建ConnectionFactory对象,指明ip以及端口号,采用的是tcp协议,port为61616
2.使用ConnectionFactory对象创建Connection对象
3.开启连接,使用Connection对象的start方法
4.使用Connection对象创建Session对象
5.使用Session对象创建Destination对象(Topic或者Queue),需要指定一个列队的名称
6.使用Session对象创建Consumer对象
7.接收消息,使用Consumer对象,setMessageListener方法,这里有个匿名内部类
8.打印消息
9.关闭资源
代码如下:
关于原生态的ActiveMQ就讲到这里了.
ActiveMQ简单使用(一):整合Spring
在进行数据查询的时候,都会遇到一个问题:当查询的数据量过大,相同数据查询频次过多的时候,都会选择将其加入到缓存或者索引中,提高查询效率.
但是作为实际生产环境中,都会有一个后台的管理,进行相关数据的CRUD操作.如何保证后台CRUD操作能即时的将数据添加到相应的缓存或者索引库中呢,使用ActiveMQ就是一个比较合适的一个选择.
在进行ActiveMQ的相应使用的时候,我们需要先明白它的消息形式,分为:消息传递的类型;消息正文格式.下图就是其分类形式:
图上的各个参数的解释应该还是比较容易理解的,这个是从我自己写的xmind文档上截图的.
在使用的时候,针对不同的需求.可以进行相关的选择.对于五中消息正文格式,还是TextMessage这种消息正文格式使用的居多,各位按需选择即可.
在了解了其消息形式后,我们就进行下一步的使用.关于安装,在这里就不怎么介绍了,各位自行百度.
对了,在这里有个要说下,ActiveMQ是自带一个后台管理的,url:http://IP:8161/admin,这里的IP是安装了ActiveMQ的那台服务器的IP地址,port默认的是8161.各位可以自己进入进行相关的查看了解.
接下来,我们进入正题,ActiveMQ在JAVA中的使用:
我们在进行ActiveMQ的使用的时候,会有两个角色需要明白:Producer和Customer.
这个根据字面的意思也很好理解,一个是生产者,创建相应的ActiveMQ,以及需要传递的相关数据;一个是消费者,接收Producer传递的相关数据并进行相关的处理.
在进行Producer和Customer的相关书写的时候,可能初步看起来有点繁琐,代码量有点多,无从下手.但是其逻辑很清晰,按照其逻辑一步一步下去就行,而且都是固定代码.需要修改的地方其实是很少的.主要逻辑如下:
Producer:
1.创建ConnectionFactory对象,指明ip以及端口号,采用的是tcp协议,port为61616
2.使用ConnectionFactory对象创建Connection对象
3.开启连接,使用Connection对象的start方法
4.使用Connection对象创建Session对象
5.使用Session对象创建Destination对象(Topic或者Queue),需要指定一个列队的名称
6.使用Session对象创建Producer对象
7.使用Session对象创建TextMessage对象,传递要你发送的内容
8.使用Producer对象发送消息
9.关闭资源
代码如下:
public void testQueueProduct() throws Exception{ //1.创建ConnectionFactory对象,指定服务器的IP以及端口号,这个走的是TCP协议,因此是TCP开头 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://IP:61616"); //2.使用ConnectionFactory对象创建一个Connection对象 Connection connection = connectionFactory.createConnection(); //3.开启连接,使用start方法 connection.start(); //4.使用Connection对象创建一个Session对象 //第一个参数:是否开启事务.true,开启事务,第二个参数忽略 //第二个参数:当第一个参数为false的时候,第二个参数才有意义.消息的应答模式:1.自动应答,2.手动应答.一般是自动应答 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //5.使用Session创建Destination对象.这里明明要创建Destination对象,为什么创建的是Queue呢:因为Destination是Topic和Queue的父类!!! //参数:队列的名称 Queue queue = session.createQueue("test_queue"); //6.使用Session创建一个Producer对象 MessageProducer messageProducer = session.createProducer(queue); //7.使用Session对象创建一个TextMessage对象 TextMessage textMessage = session.createTextMessage("hello activeMQ.this is my first test"); //8.使用MessageProducer发送消息 messageProducer.send(textMessage); //9.关闭资源 messageProducer.close(); session.close(); connection.close(); }
Customer:
1.创建ConnectionFactory对象,指明ip以及端口号,采用的是tcp协议,port为61616
2.使用ConnectionFactory对象创建Connection对象
3.开启连接,使用Connection对象的start方法
4.使用Connection对象创建Session对象
5.使用Session对象创建Destination对象(Topic或者Queue),需要指定一个列队的名称
6.使用Session对象创建Consumer对象
7.接收消息,使用Consumer对象,setMessageListener方法,这里有个匿名内部类
8.打印消息
9.关闭资源
代码如下:
public void testQueueConsumer() throws Exception{ //1.创建ConnectionFactory对象 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://IP:61616"); //2.使用ConnectionFactory对象创建Connection对象 Connection connection = connectionFactory.createConnection(); //3.开启连接 connection.start(); //4.使用Connection对象创建Session对象 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //5.使用Session对象创建一个Destination对象,此处创建的是Queue,列队名称要保证一致!! Queue queue = session.createQueue("test_queue"); //6.使用Session对象创建Consumer对象 MessageConsumer messageConsumer = session.createConsumer(queue); //7.接收消息,使用Consumer对象进行创建,使用setMessageListener方法,这里有个匿名内部类 messageConsumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { try { TextMessage textMessage = (TextMessage) message; //取消息的内容 String text = textMessage.getText(); //8.打印消息 System.out.println(text); } catch (Exception e) { e.printStackTrace(); } } }); System.in.read(); //9.关闭资源 messageConsumer.close(); session.close(); connection.close(); }大家应该可以看出,虽然原生态的代码看起来有点多,但是很多都是固定的,只需要修改部分参数就能使用,按照逻辑一步步往下,其实还是挺简单的.各个注意的事项在代码的注释上都有详细的解释,各位多看看注释就应该没什么问题.
关于原生态的ActiveMQ就讲到这里了.
ActiveMQ简单使用(一):整合Spring
相关文章推荐
- spring整合tiles3简单介绍和使用
- ActiveMQ的入门案例以及整合Spring的简单使用
- spring整合消息中间件ActiveMQ简单使用
- Apache shiro的简单介绍与使用教程(与spring整合使用)
- 本篇主要讲解在未使用其他框架(Spring)整合情况下,独立基于ActiveMQ,使用JMS规范进行消息通信。
- Spring整合hibernate的事务属性介绍以及声明式事务管理 (使用Annotation和xml)
- Redis+Spring集成使用简单介绍
- spring-jms(activemq实现)使用queue发送消息简单例子
- Spring MVC整理系列(05)————Spring MVC配置解析及整合SpriSpring MVC之@ModelAttribute、@SessionAttributes以及Model的使用介绍
- Spring 配置log4j和简单介绍Log4J的使用
- spring 整合quartz的方式——简单介绍
- Spring 配置log4j和简单介绍Log4J的使用
- struts2与spring的整合简单总结和使用
- ActiveMQ简单使用介绍
- spring+ehCache简单整合使用示例
- Spring 配置log4j和简单介绍Log4J的使用
- Spring 配置log4j和简单介绍Log4J的使用
- 简单介绍Log4J的使用和Spring 配置log4j
- jedis与spring整合及简单的使用RedisTemplate操作
- Quartz学习笔记-Spring整合与简单使用