消息队列ActiveMQ+Spring整合

单细胞分析避坑指南:你的Harmony批次矫正真的做对了吗? 本文深入探讨了单细胞转录组分析中Harmony批次矫正的正确使用方法,解析了其工作原理及常见误区。通过详细参数调优指南和实战案例,帮助研究者避免过度矫正,确保生物学信号的有效保留。特别关注Harmony在单细胞数据分析中的关键参数设置和结果验证方法。 阅读详情
  • 消息队列MQ简介
    消息队列技术是分布式应用间交换信息的一种技术。使用消息队列可以很好的将任务以异步的方式进行处理或者进行数据传送和储存等。例如当你频繁地向数据库中插入数据、频繁的向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢/较复杂的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理。
    常规的使用场景:短信服务、电子邮件服务、图片处理服务、好友动态推送服务等。
    特性:异步、顺序读写、高性能、协议简单。所以一般会用于解决大量的服务器端异步请求,同时可以实现服务端的负载均衡和业务的容灾。

    1. ActiveMQ简介

        ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位
      
  • 消息模型: 点对点(p2p)、发布/广播(Pub/Sub)。

  • 流程:
    p2p:消息生产者>消息队列>消息消费者

    Pub/Sub:主题>发布者>订阅者

    1. ActiveMQ准备

    apache官网下载activeMQ:

    http://activemq.apache.org/download.html

进行解压后运行其bin目录下面的win32或者win64文件夹下的activemq.bat文件启动activeMQ。

  • Maven配置
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.7.0</version>
        </dependency>

配置connectionFactory
connectionFactory是Spring用于创建到JMS服务器链接的,Spring提供了多种connectionFactory.

PooledConnectionFactory: JmsTemlate每次发送消息时只会缓存connection,session和productor,不会缓存consumer。因此只适合于生产者发送消息,这个只是在要求消息处理的及时性不是特别高的情况下。

SingleConnectionFactory: 对于建立JMS服务器链接的请求会一直返回同一个链接,并且会忽略Connection的close方法调用。

CachingConnectionFactory: 继承了SingleConnectionFactory,所以它拥有SingleConnectionFactory的所有功能,同时它还新增了缓存功能,它可以缓存Session、MessageProducer和MessageConsumer。我们使用CachingConnectionFactory来作为示例。

  1. Spring配置

    applicationContext.xml 设置:

    <!-- 获取ActiveMQ提供的ConnectionFactory -->
    <amq:connectionFactory id="amqConnectionFactory"
    <!--设置ActiveMQ服务器地址及端口-->
        brokerURL="failover:(tcp://localhost:61616)?initialReconnectDelay=100" />

    <!-- 配置ActiveMQ服务器连接conneciotnFactory -->
    <bean id="connectionFactory"
        class="org.springframework.jms.connection.CachingConnectionFactory">
        <!-- 将ActiveMQ提供的ConnectionFactory注入到Spring管理的connectionFactory中 -->
        <constructor-arg ref="amqConnectionFactory" />
        <!--设置缓存大小-->
        <property name="sessionCacheSize" value="100" />
    </bean>

    <!-- 配置JMS消息生产者 -->
    <!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
    <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
        <constructor-arg ref="connectionFactory" />
        <!-- 非pub/sub模型(发布/订阅),即队列模式 -->
        <property name="pubSubDomain" value="false" />
    </bean>

    <!-- 定义Queue监听器 -->
    <jms:listener-container concurrency="10"
        destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">
        <!--监听的java类-->
        <jms:listener destination="queue" ref="ConsumerMessageListener" />
    </jms:listener-container>
5. **JAVA代码**  

**实现发送消息到消息队列**
@Service("ProducerService")
public class ProducerServiceImpl{

    @Autowired
    private JmsTemplate jmsQueueTemplate;

    public void sendMessage(String destinationName, final String message) {
        System.out.println("------生产者发送消息------");
        System.out.println("------生产者发了一个消息:" + message);
        jmsQueueTemplate.send(destinationName, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                // TODO Auto-generated method stub
                return session.createTextMessage(message);
            }
        });
    }

}

实现消息监听,获取消息并消费

@Component("ConsumerMessageListener")
public class ConsumerMessageListener implements MessageListener {

    public void onMessage(Message message) {
        // TODO Auto-generated method stub
        TextMessage textMsg = (TextMessage) message;
        System.out.println("接收到一个纯文本消息.");
        try {
            System.out.println("消息内容是:" + textMsg.getText());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
【ArcGIS风暴】Win10操作系统ArcGIS许可License无法启动的解决方法汇总(绝对成功!) 文章目录1. 关闭Windows Defender2. 关闭系统防火墙3. 删除迈克菲(McAfee)杀毒软件4. 在系统服务中启动 在安装ArcGIS软件时,最重要的一步是许可服务的正常启动,通常,由于各种各样的原因,ArcGIS许可管理器License Manager十有八九会无法启动,点N多次都没反应,如果许可服务不能如愿启动的话,即使Desktop安装成功,也是无法打开的。本文汇总了Win10操作系统之上ArcGIS安装过程中可能会导致服务无法启动的原因及解决办法。 ArcGIS安装参考教程: 阅读详情

相关推荐

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

active mq 消费

首先配置MQ connection  id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> name="brokerURL" value="failover://@{amq.address}?randomize=false&jms.useAsyn

Hello World 612

从零开始:小鼠Bulk RNA-seq全流程实战指南

本文提供了一份详尽的小鼠Bulk RNA-seq全流程实战指南,涵盖从软件环境搭建、原始数据质控与清洗、序列比对、基因定量到下游差异表达分析与功能富集。内容面向生物信息学新手,通过清晰的代码示例和步骤解析,帮助读者系统掌握Bulk RNA-seq数据分析的核心技能,并产出可靠的生物学洞见。

lake5的博客 715

【转】ActiveMQ架构设计与最佳实践

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33885253的博客 430

VCL for PHP,Konopka Signature VCL Controls (Raize Components 6.2.3) for Delphi 10.4

The Raize Components suite includes a variety of interface design tools for Delphi programming language and C ++ Builder, which includes over 125 VCL controls and over 100 different tools for creating...

weixin_42137539的博客 852

Docker安装并运行AnythingLLM的详细教程

通过本文的介绍,你已经掌握了如何在 CentOS 系统上使用 Docker 安装并运行 AnythingLLM。AnythingLLM 提供了强大的功能,支持本地知识库搭建和多模态输入,非常适合个人和企业使用。希望本文能帮助你快速上手并搭建自己的 AI 知识库。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 5841

SpringBoot框架学习(九)——消息队列

文章目录十三、SpringBoot与消息1.概述 十三、SpringBoot与消息 1.概述 大多数应用中,可以通过消息服务中间件来提升系统异步通信、扩展解耦能力。 异步通信 扩展解耦 流量削峰 消息服务中两个重要概念:(1)消息代理(2)目的地 当消息发送者发送消息之后,将由消息代理接管,消息代理保证消息传递到指定目的地。 消息队列主要有两种形式到达目的地 (1)队列(que...

0117 10万+

【数字孪生与仿真技术】07:焊装生产线虚拟调试与PLC代码生成全流程实战:从数字孪生到智能优化

摘要:本文系统阐述焊装生产线虚拟调试与PLC代码自动化生成的完整技术体系,结合工业4.0背景下的智能制造需求,构建从离散事件仿真、机器人运动规划到PLC控制逻辑生成的全流程解决方案。通过MATLAB/Simulink平台实现焊装线物流仿真优化,采用遗传算法进行缓冲区容量配置,结合Stateflow状态机设计PLC控制逻辑,并利用PLC Coder生成西门子S7-1500兼容的ST代码。某车企焊装线应用案例显示,虚拟调试技术使调试周期缩短75%,OEE提升13.4%,年节约成本超$420万。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1829

Spring源码——消息队列

前言 内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。 本文主要涉及书中第十三章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-framework Java消息服务 (Java Message Servi...

等一杯咖啡的博客 7106

用 ADBC 把动态查询做得又快又稳:从 CL_SQL_STATEMENT 到安全取数的工程化实践

本文介绍了ABAP中ADBC(ABAP Database Connectivity)技术的核心用法与最佳实践。ADBC作为Open SQL的补充,适用于动态查询、数据库特性调用等场景。文章通过示例代码详细演示了使用ADBC执行查询的完整流程:创建SQL语句、执行查询获取结果集、批量装载数据到内表,以及分包读取处理大数据量。特别强调了动态SQL的安全防护措施,包括输入转义和参数绑定等防注入技术。同时对比了ADBC与Open SQL的适用场景,指出ADBC更适合需要动态访问数据库原生功能的场合。文章还分析了代码

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1770

2026 企查查/天眼查:IP频率限制 + 验证码策略,企业工商数据采集实战

企业工商数据采集技术解析与解决方案 本文深度剖析了2026年企查查和天眼查平台的反爬机制与技术对抗方案。主要内容包括: 反爬机制分析: 采用JA4+ TLS指纹识别、极验v6验证码等多层防护 IP限制策略严格区分未登录/普通/VIP账号 精准识别并封禁数据中心IP 核心解决方案: 构建高可用住宅代理池,动态轮换真实用户IP 基于YOLOv8的验证码缺口识别技术(准确率99%) 分布式架构设计,支持千万级数据采集 多账号池管理与行为模拟技术 技术亮点: 动态住宅IP池实现1%以下封禁率 Playwright浏

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1326

RabbitMQ - 基于 SpringAMQP 带你实现五种消息队列模型

什么是 AMQP?全称,是用于在应用程序之间传递业务消息的开放标准。该。什么是 SpringAMQP?Spring AMQP是基于AMQP协议定义的一套API规范,提供了模板。包含两部分,其中spring-amqp是基础抽象,spring-rabbit是底层的默认实现。

CYK_byte的博客 2852

C和C++Everything教程的简介

C和C++Everything教程的简介 C和C++Everything教程,该专栏目前已有8000博文,订阅该专栏相当于同时订阅以下所有收费专栏

希望我的博客,能帮上你解决学习中工作中所遇到的问题 4389

Spring和ActiveMq消息队列整合详解

Spring和ActiveMq消息队列整合详解 官方主页 Spring ActiveMq 一、概述 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者) 常见的消息中间件产品: (1)Activ...

feiyangtianyao的专栏 1198

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java消息队列-Spring整合ActiveMq

首先和大家一起回顾一下Java 消息服务,在我之前的博客《Java消息队列-JMS概述》消息服务:一个中间件,用于解决两个活多个程序之间的耦合,底层由Java 实现。优势:异步、可靠消息模型:点对点,发布/订阅JMS中的对象然后在另一篇博客《Java消息队列-ActiveMq实战》中,和大家一起从0到1的开启了一个ActiveMq 的项目,在项目开发的过程中,我们对ActiveMq有了一定的了解:多种语言和协议编写客户端。

CHIKA2333的博客 416

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java 消息队列详解_Java消息队列-Spring整合ActiveMq的详解

本篇文章主要介绍了详解Java消息队列-Spring整合ActiveMq ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧1、概述首先和大家一起回顾一下Java 消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:1.消息服务:一个中间件,用于解决两个活多个程序之间的耦合,底层由Java 实现。2.优势:异步、可靠3.消息模型:点对点,发布/订阅...

weixin_34512840的博客 290

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring整合ActiveMQ实现简单的消息队列

Spring整合ActiveMQ实现简单的消息队列 JMS简介 JMS(Java Message Service),Java消息服务。主要用于在生产者和消费者之间进行消息传送,生产者负责生产消息,消费者负责接收处理消息。在实际的业务中,生产者生成消息,发送消息,消息会保存到ActiveMQ队列中,对应的消费者会接收消息,完成特定的业务逻辑。消息的传递模型有两种,一种是点对点,一个生产者对应一个

weihao_的博客 5104

Spring boot activemq Thymeleaf 整合 利用消息队列传输数据

activemq环境搭建 1 下载 链接:http://activemq.apache.org/download.html 本人这次实验最近的版本,并选择window系统 2 解压 3 运行 在Windows上: 从控制台窗口,切换到安装目录并运行ActiveMQ: cd [activemq_install_dir] activemq_install_dir安装ActiveMQ的目录...

weixin_44450111的博客 295

Spring整合ActiveMq消息队列

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 特性列表: ⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议:...

weixin_34409357的博客 152

消息队列中间件——Spring整合ActiveMQ

1. 创建applicationContext-mq.xml的配置文件,导入约束 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLS...

weixin_41933719的博客 211

java onmessage监听消息队列_详解Java消息队列-Spring整合ActiveMq

1、概述首先和大家一起回顾一下Java 消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:1.消息服务:一个中间件,用于解决两个活多个程序之间的耦合,底层由Java 实现。2.优势:异步、可靠3.消息模型:点对点,发布/订阅4.JMS中的对象然后在另一篇博客《Java消息队列-ActiveMq实战》中,和大家一起从0到1的开启了一个ActiveMq 的项目,在项目开发的过...

weixin_42140846的博客 1222

Spring整合ActiveMQ消息队列

1、创建一个普通的maven工程,导入依赖: <properties> <spring.version>4.2.4.RELEASE</spring.version> </properties> <dependencies> <!-- Spring --> <dependency> <groupId>org.springfr

callback_zc的博客 213

java web中整合mq_Java消息队列-Spring整合ActiveMq

1、概述首先和大家一起回顾一下Java 消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:消息服务:一个中间件,用于解决两个或多个程序之间的耦合,底层由Java 实现。优势:异步、可靠消息模型:点对点,发布/订阅JMS中的对象然后在另一篇博客《Java消息队列-ActiveMq实战》中,和大家一起从0到1的开启了一个ActiveMq 的项目,在项目开发的过程中,我们对Ac...

weixin_34867001的博客 357

实战Spring4+ActiveMQ5整合实现消息队列(生产者+消费者)

引言: 最近公司做了一个以信息安全为主的项目,其中有一个业务需求就是,项目定时监控操作用户的行为,对于一些违规操作严重的行为,以发送邮件(FoxMail)的形式进行邮件告警,可能是多人,也可能是一个人,第一次是以单人的形式,,直接在业务层需要告警的地方发送邮件即可,可是后边需求变更了,对于某些告警邮件可能会发送多人,这其中可能就会有阻塞发邮件的可能,直到把所有邮件发送完毕后再...

weixin_30908707的博客 285

[消息队列]Java消息队列-Spring整合ActiveMq

1、概述   首先和大家一起回顾一下Java 消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了: 消息服务:一个中间件,用于解决两个活多个程序之间的耦合,底层由Java 实现。 优势:异步、可靠 消息模型:点对点,发布/订阅 JMS中的对象  然后在另一篇博客《Java消息队列-ActiveMq实战》中,和大家一起从0到1的开启了一个ActiveMq 的...

疯一样的女子 628
上一篇: 事务
下一篇: RabbitMQ安装
p_zick
博客等级 码龄11年 3粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值