- 一、为什么需要spring + activeMq 集成?
1、原生的JMS使用起来,太繁琐,需要封装很多层才能在正式代码中使用,
2、activemq一套开源的JMS实现方案,实现了服务端和客户端,开箱即用
3、spring一整套组件,直接拿来主义
- 二、实现步骤
1、开启activemq服务端
直接从官网下载 http://activemq.apache.org/,开箱即用的东西,略过。
2、客户端调用所需要的关键jar包,使用的maven管理,其他包管理类似
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.0.6.RELEASE</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.7.0</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.7.0</version> </dependency>
实际使用的时候,可以适当调整版本号
3、在JMS规范 中,使用JMS几个步骤,
(1)、用JNDI 得到ConnectionFactory对象;
(2)、用JNDI 得到目标队列或主题对象,即Destination对象;
(3)、用ConnectionFactory创建Connection 对象;
(4)、用Connection对象创建一个或多个JMS Session;
(5)、用Session 和Destination 创建MessageProducer和MessageConsumer;
(6)、通知Connection 开始传递消息。
而activemq使用的步骤也是大同小异
3.1、建立ConnectionFactory以及spring高度封装的JmsTemplate
@Bean public PooledConnectionFactory PooledConnectionFactory(){ ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); connectionFactory.setBrokerURL(MQ_URL);//配置MQ_URL,例如tcp://localhost:61616 PooledConnectionFactory PooledConnectionFactory = new PooledConnectionFactory(); PooledConnectionFactory.setConnectionFactory(connectionFactory); return PooledConnectionFactory; } @Bean public JmsTemplate JmsTemplate(){ JmsTemplate JmsTemplate = new JmsTemplate(); JmsTemplate.setConnectionFactory(PooledConnectionFactory()); return JmsTemplate; }
3.2 建立Queue或者Topic
@Bean(name="queue1")
public Destination queue1Destination(){
Destination destination = new ActiveMQQueue(queue1);//队列 定义queue1名称即可
//Destination destination = new ActiveMQTopic(queue1);//主题
return destination;
}
第3,4步直接省略,JmsTemplate已经做好了
3.3 发送消息
@Component public class MyMessageSender { @Autowired JmsTemplate jmsTemplate; @Resource(name="queue1") Destination destination; public void send(String msg){ jmsTemplate.send(destination, new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { TextMessage message = session.createTextMessage(); message.setText(msg); return message; } }); } }
发送消息是如此的简单,制定队列名称,就可以直接发送消息到队列或者主题
3.4消息监听,有了消息发送就得有Consumer处理消息
@Component public class MyMessageListener implements MessageListener{ @Override public void onMessage(Message message) { System.out.println("==========Thread:"+Thread.currentThread().getId()); System.out.println("==========MyMessageListener"+message.toString()); } }
以及支持该消息监听的消息容器
@Autowired MyMessageListener messageListener; @Bean(name="queue1ListenerContainer") public DefaultMessageListenerContainer DefaultMessageListenerContainer(){ DefaultMessageListenerContainer listenerContainer = new DefaultMessageListenerContainer(); listenerContainer.setConnectionFactory(PooledConnectionFactory()); listenerContainer.setDestination(queue1Destination()); listenerContainer.setMessageListener(messageListener); listenerContainer.setConcurrentConsumers(2);//可以理解为起两个线程去消费消息 return listenerContainer; }
至此主流程开发结束。
相关推荐
ActiveMQ消息中间件的点对点模式point to point 消息队列 * 消息消费者从queue中取出并且消费消息 * 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息 * queue中支持存在多个消费...
004-p2p模式+pulish-subscribe发布订阅模式+与spring集成;005-集群部署1;006-集群部署2;007-集群部署3;activemq集群配置文档.pdf;ActiveMQ(中文)参考手册.doc;ActiveMQ集群:网络连接模式(network connector)...
消息中间件activemq的入门demo,以及集成了spring管理jsm的初始化管理,简化发送消息的步骤。前后两个项目的对比,凸显出spring的优点
java消息中间件学习-Spring集成JMS连接ActiveMQ demo
1.ActiveMQ消息队列中间件 1.1.什么是ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,...
SpringCloud Eureka作为注册中心、Feign客户端调用工具、断路器Hystrix 视图展示使用Freemarker、数据库层使用Mybatis框架、缓存使用Redis、数据库使用MySQL 项目管理工具使用Maven、版本控制工具使用SVN、项目自动...
单片机部分采用MQTT协议将主题消息发布到队列中,java部分也采用MQTT协议进行处理,整合MQTT协议, 具体这个资源是干什么的,请查看博客: https://blog.csdn.net/qq_34178998/article/details/93158429
MQJMS以及ActiveMQ的关系理解 主动式MQ ActiveMQ的环境搭建 深入了解topic队列与Queue队列比较点到点(X英尺) ...在Spring下集成ActiveMQ ActiveMQ中间件实现实时消息传递第13讲-使用ActiveMQ与Sping框架整合案例
ActiveMQDemo:这是关于消息中间件ActiveMQ的WEB项目,将覆盖JMS,ActiveMQ的初始入门和API详细使用,两种经典的消息模式(PTP和PubSub),与Spring集成,ActiveMQ进行监控,监控与配置优化等。不多说,直接撸原始码...
基于JMS标准的消息中间件实现的产品有很多,JBossMQ、ActiveMQ、OpenMQ、OpenJMS等等,最常用的还是apache的ActiveMQ。有时也使用Sun的OpenMQ。在官网http://mq.java.net/处可以下载。Open Message Queue是Sun Java ...
消息中间件的功能、特点、应用场景等 n 二: ActiveMQ安装和基本使用 包括:通过源码安装、基本的配置示例、启动、测试运行、关闭等 n 三:理解和掌握JMS 包括:基本概念、消息结构、可靠性机制、PTP、Pub/Sub、API...
1、提交代码触发post请求给bus/refresh 2、server端接收到请求并发送给Spring Cloud Bus 3、Spring Cloud bus接到消息并通知给其它客户端 4、其它客户端接收到通知,请求Server端获取最新配置 5、全部客户端均获取到...
通过本套视频教程您可以掌握JMS消息中间件ActiveMQ的应用场景和精湛技术,学会消息中间件ActiveMQ与Spring的集成环境搭建,以及注册中心Zookeeper的集群和ActiveMQ高可用集群的搭建,与此同时您还可以掌握如何验证高...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用!...5.消息中间件:ActiveMQ 6.搜索引擎:solr 7.富文本编辑器: Kindeditor 8.异步更新:Ajax 9.前端框架:zui、bootstrap、Jquery
人群管理员 语言 | 项目介绍 人群管理是一个后台权限管理系统脚手架,集成了rbac权限管理,消息推送,邮件发送,任务调度,代码生成,elfinder文件管理等常用功能,系统内部各个...消息中间件:activeMQ 消息推送:W
社会文献图书馆2.0 该软件以微服务架构...主要技术用户中心设计REST:用于REST WS的Spring MVC / HEATOAS 消息传递:WebSoket,带有Apache ActiveMQ作为消息传递中间件的JMS EIP:Spring集成微服务架构NoSql:MongoDB
本系统主要是做基于 Java 的一个智能客服系统,使用 Spring 框架,MySQL 数据库、ActiveMq 消息中间件、Redis 缓存、Elasticsearch 全文搜索等服务,一个智能客服系统包含的开发任务有:主要包括前端的页面开发,...
集成Swagger2自动生成接口文档,集成Druid连接池进行SQL性能监控,集成ActiveMQ消息中间件进行异步解耦,提高性能。最后使用linux系统进行服务部署,并搭建nginx反向代理服务器提高网站性能。 二、学习目标 通过本...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...