SpringBoot2.0之整合ActiveMQ(点对点模式)

SpringBoot(四)springboot整合ActiveMQ        消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。消息形式支持点对点和订阅-发布。 ActiveMQ是什么 ActiveMQ是消息队列技术,为解决高并发问题而生 ActiveMQ生产者消费者模型(生产者和消费者可以跨平台、跨系统) ActiveMQ支持如下两种消息传... 阅读详情

SpringBoot2.0之整合ActiveMQ(点对点模式)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.toov5.springboot.avtivemq</groupId>
  <artifactId>springboot.avtivemq</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <!-- 管理依赖 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.M7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- SpringBoot Activemq -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>
    </dependencies>
    <!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/libs-milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
  
  
  
</project>

 

没有版本号,表示springboot已经整合好了

项目结构:

yml:

spring:
  activemq:
    broker-url: tcp://192.168.91.6:61616
    user: admin
    password: admin
my_queue: springboot-queue-toov5
server:
  port: 8080  

 

config:

package com.toov5.config;

import javax.jms.Queue;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

@Component
public class ConfigQueue {
   @Value("${my_queue}")
   private String myQueue;
    
    //首先将队列注入到SpringBoot容器中去
    @Bean
    public Queue queue() {
        return new ActiveMQQueue(myQueue); 
    } 
    
}

producer

package com.toov5.Producer;

import javax.jms.Queue;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class P2PProducer {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    //把队列注入进来 
    @Autowired  //此注解默认是以类型找  在配置文件中 已经注入的  @Bean 
    private Queue queue;
    
    //每隔5s时间向队列发送消息
    @Scheduled(fixedDelay=5000)  //每间隔2s向队列发送消息
    public void send() {
        String msgString = System.currentTimeMillis()+" ";
        jmsMessagingTemplate.convertAndSend(queue,msgString);
        System.out.println("点对点通讯,msg"+msgString);
    }
}

启动类:

package com.toov5;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling  //开启定时任务
public class AppProducer {
   public static void main(String[] args) {
    SpringApplication.run(AppProducer.class, args);
}
}

运行:

一直在增加

思路总结: queue 注入到springboot容器, 然后producer 去取出来 spring定时任务 5s定时写入消息

 

然后创建另外一个Consumer 的maven 项目:

 

pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.springboot.activemqConsumer</groupId>
  <artifactId>activemqConsumer</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
	</parent>
	<!-- 管理依赖 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.M7</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- SpringBoot整合Web组件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- SpringBoot Activemq -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-activemq</artifactId>
		</dependency>
	</dependencies>
	<!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->
	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/libs-milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>
</project>

 yml:

spring:
  activemq:
    broker-url: tcp://192.168.91.6:61616
    user: admin
    password: admin
my_queue: springboot-queue-toov5
server:
  port: 8080

consumer:

package com.toov5.activemqConsumer;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class P2PConsumer {
   
    @JmsListener(destination= "${my_queue}")    //用这个注解去监听 监听的队列
    public void receiver(String msg) {
        System.out.println("消费者成功获取到生产者的消息,msg"+msg);
    }
    
    
}

启动类:

package com.toov5.activemqConsumer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AppConsumer {

    public static void main(String[] args) {
        SpringApplication.run(AppConsumer.class, args);
    }
    
}

 

 修改为两个不同的端口一起跑:

 

 

一篇文章带你使用 SpringBoot 整合 ActiveMQ 文章目录一、ActiveMQ 介绍二、ActiveMQ 安装三、SpringBoot 整合 ActiveMQ1. 加入依赖配置2. 配置 application.properties3. 配置队列4. 配置 Message 对象5. 配置 JmsComponent6. 测试 一、ActiveMQ 介绍 MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有 ActiveMQ,RabbitMQ,kafka。ActiveMQ 是 Apache下的开源项目,完全支持JMS1.1和J2EE1. 阅读详情

相关推荐

SpringBoot整合ActiveMQ消息队列和双向队列、点对点与发布订阅

SpringBoot整合ActiveMQ消息队列和双向队列、点对点与发布订阅,可以参考我的博客文章进行学习https://blog.csdn.net/sujin_/article/details/82956386

SpringBoot+ActiveMQ-点对点队列模式(生产端)

ActiveMQ消息中间件的点对点模式point to point 消息队列 * 消息消费者从queue中取出并且消费消息 * 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息 * queue中支持存在多个消费者,但是对一个消费者而言,只会有一个消费者可以消费,其他的消费者便不能消费此消息 * 当消费者不存在时,消息会一直保存,直到有消费者消费消息 (持久化)

蚂蚁舞 688

中科蓝讯AB536X/AB892X芯片开发避坑指南:Downloader配置中那些容易忽略的细节

本文详细解析中科蓝讯AB536X/AB892X芯片开发中Downloader配置的关键细节,包括软开关机实现、触摸灵敏度调试、量产校频等常见问题。特别针对无PR口芯片的替代方案、触摸参数优化、校频流程等易忽略环节提供实用解决方案,帮助开发者规避量产风险,提升开发效率。

weixin_30687051的博客 476

SpringBoot集成activeMQ实现Queue模式点对点通信

本篇文章主要是讲SpringBoot集成activeMQ实现Queue模式点对点通信。首先来讲一讲什么是MQ:Message Queue 消息队列;MQ可以理解为现实生活中的邮局,当A给物品给B时,A无需直接去找B当面去将物品交给B,A可以通过邮局寄送,然后B通过查询快递信息(监听),知道物品达到邮局,然后B自己去邮局取即可。 消息队列的2种通信模式: point-to-point:...

kenyon的博客 1248

FFmpeg HDR视频转SDR视频命令

之前蓝光盘电影多是AVC 1080p 8bit SDR格式视频,近两年4K电影流行,下载的蓝光电影多是HEVC 2160p 10bit HDR视频格式。 ffprobe查看有如下属性: # 10bit HDR Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98

彼此当年少,莫负好时光 1万+

手把手教你搭建日本亚马逊CVV钓鱼系统(含自动验证功能)

本文详细介绍了电商平台安全防护的关键实践,重点讲解了如何构建自动化风控系统。内容包括基础架构设计、用户行为分析、交易风险评估模型构建、验证机制实现以及系统部署优化,帮助电商平台有效识别和防范安全威胁,同时提升用户体验。

weixin_30952535的博客 817

互联网架构系列全套SpringBoot2.x初级入门到实战

<p><img src="https://img-bss.csdnimg.cn/202102041031542766.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041032008465.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041032062681.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041032114827.png" alt="" /></p>

【华为OD机试真题E卷】474、推荐多样性 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)

题目描述 >推荐多样性需要从多个列表中选择元素,一次性要返回 N 屏数据(窗口数量),每屏展示 K 个元素(窗口大小),选择策略:   各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推   每个列表的元素尽量均分为 N 份,如果不够 N 个,也要全部分配完,参考样例图:

KJ.JK 4434

SpringBoot+ActiveMq实现点对点(Queue)消息队列

上篇博文主要分析了三种不同的请求方式,其中提到了基于消息队列的请求,当然只是从理论的角度去进行了分析,本篇博文就再次结合具体实现来说说消息队列。 一、什么是消息队列? 作为中间件,消息队列是分布式应用间交换信息的重要组件。消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息...

superyu1992的专栏 5319

不提交也不释放的事务,数据库连接还有可能被复用

摘要 实验发现Spring事务管理下,未提交事务的数据库连接池连接仍可被复用,这与传统认知相悖。通过配置HikariCP连接池(最大2连接)并设计测试接口,观察到未提交事务的连接会被后续请求复用。这可能导致GTID错误(当MySQL开启GTID且混用事务/非事务表时)以及数据修改丢失问题。研究揭示了Spring事务管理机制与连接池交互的特殊行为,对高并发系统设计具有重要启示。

蔡定努 177

yolov26改进 | 融合改进篇 | 华为VanillaNet配合HSFPN助力yolov26有效涨点(教你如何融合创新点)

本文介绍华为VanillaNet主干与HSFPN融合改进的YOLOv26。VanillaNet采用极简卷积结构,减少复杂分支与冗余操作,兼顾特征提取效率;HSFPN原本面向白细胞多尺度检测,通过特征选择模块筛除无效响应,再利用特征融合模块整合不同层级信息,增强大小目标表达。两者分别优化Backbone与Neck,结构互补,可进一步搭配改进损失函数和检测头开展消融实验与论文创新。已有多位读者反馈在各自数据集上取得涨点。文中提供完整代码、配置文件、模块注册及Codex修改思路,方便复现。

Snu77的博客 454

SpringBoot2.1.X 整合 ActiveMQ点对点消息队列(一)

一、什么是消息队列? 它是分布式应用间交换信息的重要组件。消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息。所以消息队列可以解决应用解耦、异步消息、流量削锋等问题,是实现高性能、高可用、可伸缩和最终一致性架构中不可以或缺的一环。 简单的来说,消息队列就是独立于...

分享我的点点滴滴,在成长路上与你同行! 990

chromium通信系统-ipcz系统(二)-ipcz系统代码实现-同Node通信

在chromium通信系统-mojo系统(一)-ipcz系统基本概念一文中我们介绍了ipcz的基本概念。 本章我们来通过代码分析它的实现。 handle系统 为了不对上层api暴露太多细节,实现解耦,也方便于传输,ipcz系统使用handle表示一个对象,handle类似于文件描述符,用IpczHandle类型表示ipcz系统内的一个对象。一个可以用IpczHandle 句柄表示的对象必须是APIObject子类。APIObject数据结构如下 class APIObject : public RefCou

woai110120130的专栏 1775

SpringBoot2.0之整合ActiveMQ【点对点模式】

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav...

art_code的博客 101

汇川Easy系列斜坡函数功能块(支持状态输出)

IN rSetValue REAL 0.000000 0.000000 不保持 目标值 1IN rMaxValue REAL 0.000000 0.000000 不保持 最大目标值 2IN rMinValue REAL 0.000000 0.000000 不保持 最小目标值 3IN rSmoothTime REAL 100.000000 100.0000 不保持 最小到最大值平滑时间 单位 秒 4IN diTs DINT 10 10 不保持 函数调用周期采样时间中断时间 5。

RXXW_Dor的博客 458

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

《SpringBoot2.0 实战》系列-整合Activemq实现点对点、发布订阅模式共存、消息持久化、重试等

简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 作用 应用解耦 异步通信 流量削峰 消息通讯 安装 提供docker的安装方式,其他方式网上也都有很多 https://blog.csdn.net/HXNLYW/article/de...

小葫芦的博客 1140

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

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

《SpringBoot篇》25.SpringBoot整合ActiveMQ

简介:在先学习整合之前先了解一下ActiaveMQ,ActiveMQ是早期MQ产品之一,是使用JAVA语言编写。大部分现在的项目可能已经不使用,但是公司中的产品咱也说不准,所以还是要学习一下的。简单来说就是用作服务间的通信。Apache ActiveMQ是最流行的开源、多协议、基于Java的消息代理。它支持行业标准协议,因此用户可以在广泛的语言和平台上获得客户端选择的好处。从用JavaScript、C、C++、Python、.Net等编写的客户端连接。使用无处不在的AMQP协议集成多平台应用程序。

陈老老老板的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Springboot整合ActiveMQ(Queue和Topic两种模式)

写在前面: 从2018年底开始学习SpringBoot,也用SpringBoot写过一些项目。这里对学习Springboot的一些知识总结记录一下。如果你也在学习SpringBoot,可以关注我,一起学习,一起进步。 文章目录ActiveMQ简介1、ActiveMQ简介 ActiveMQ简介 1、ActiveMQ简介 ...

小马同学 7326

SpringBoot整合ActiveMQ

SpringBoot整合ActiveMQ ActiveMQ的基本使用; ActiveMQ的生产者和消费者配置。

宋冠巡的博客 3802

SpringBoot 整合ActiveMQ

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。消息形式支持点对点和订阅-发布。 ActiveMQ是什么 ActiveMQ是消息队列技术,为解决高并发问题而生 ActiveMQ生产者消费者模型(生产者和消费者可以跨平台、跨系统) ActiveMQ支持如下两种消息传输方式 点对点模式,生产者生产了一个消息,只能由一个消费者进行消费 发布/订阅模式,生产者生产了一个消息,可以由多个消费者进行消费.

qq_38097573的博客 3614

Springboot2.3.1整合ActiveMQ

点对点模式、Topic模式、VirtualTopic三种模式

胖虎儿的博客 5275

springBoot2 整合activemq

SpringBoot-ActiveMq 一个简单的整合案例, 初步实现 activemq 的 queue 队列模式 和 topic 订阅模式 (普通订阅, 持久订阅) 准备工作 springboot2.0.3 如果要使用 activemq pool 需要另外加入 activemq-pool 包 &lt;dependency&gt; &lt;groupId...

董新平 2430

springboot 整合activemq 消息发布和订阅

1.maven依赖 <!--activemq的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq&lt...

梦醒了该散了的博客 7549

《ActiveMQ系列》3.SpringBoot整合Activemq

SpringBoot整合ActiveMQ,包含发送文本消息、对象消息、持久化订阅等。

qq_45041965的博客 2236
上一篇: ActiveMQ持久化机制
下一篇: SpringBoot2.0之整合ActiveMQ【点对点模式】
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值