springboot整合rabbitmq入门(二)

springboot整合rabbitMQ 登录rabbitMQ后台。拉取rabbitMQ镜像。查看容器是否启动成功。运行rabbitMQ。安装docker参考。查看镜像是否拉取成功。第二步:生产者(publisher)创建test。新建一个父项目和两个子项目。一个为生产者、一个为消费者。我这里使用的是vm虚拟机做演示。application.yml 配置。消费者(consumer)接收代码。 阅读详情

今天继续介绍一种rabbitmq的模式-topic模式

创建queue和exchange

@Configuration
public class TopicRabbitConfig {

    @Bean
    public Queue topicA(){
        return new Queue("topicA");
    }

    @Bean
    public Queue topicB(){
        return new Queue("topicB");
    }

    @Bean
    public TopicExchange topicExchange(){
        return new TopicExchange("topicExchange");
    }

    @Bean
    Binding BindTopicA(Queue topicA, TopicExchange topicExchange){
        return BindingBuilder.bind(topicA).to(topicExchange).with("topic.message");
    }

    //*表示一个词,#表示零个或多个词

    /**
     *
     * @param topicB
     * @param topicExchange
     * *表示一个词,#表示零个或多个词
     * @return
     */
    @Bean
    Binding BindTopicB (Queue topicB, TopicExchange topicExchange){
        return  BindingBuilder.bind(topicB).to(topicExchange).with("topic.#");
    }
}

需要注意的是:topic中的routingKey支持模糊匹配, topic.message表示只能监听到routingKey为topic.messaged的消息

topic.*和topic.#区别是:topic.*表示只能监听到topic.xxx的消息,而不能监听到topic.xxx.xxx的消息

发送端:


@Component
public class TopicSend {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(){
        String context = "测试Topic";
        System.out.println("send"+context);
        this.rabbitTemplate.convertAndSend("topicExchange","topic",context);
    }
}

两个消费端:

@Component
@RabbitListener(queues = "topicA")
public class TopicReceiveA {

    @RabbitHandler
    public void receive(String content){
        System.out.println("TopicA"+content);
    }
}
@Component
@RabbitListener(queues = "topicB")
public class TopicReceiveB {

    @RabbitHandler
    public void receive(String content){
        System.out.println("TopicB"+content);

    }
}

控制台打印:因为我们routingKey是topic,所以只能B对列消费到消息

我们吧routingKey改为topic.message,会发现A和B两个消费端都可以接受到消息

 

RabbitMQ 整合 SpringBoot 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力、流量削峰消息服务中两个重要概念:消息代理(`message broker`)和目的地(`destination`)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。消息队列主要有两种形式的目的地1. 队列(`queue`):点对点消息通信(`point-to-point`)2. 主题(`topic`):发布(`publish`)/订阅(`subscribe`)消息通信。 阅读详情

相关推荐

SpringBoot 整合 RabbitMQ

相关知识 交换器 direct:一对一 fanout:一对多 topic:一对多匹配 目标 整合 Spring boot 提供的 spring-boot-starter-amqp,实现消息发送、消息消费、确认 准备工作 安装RabbitMQ 介绍使用 Docker 方式安装,Docker 安装可以参考 https://blog.youkuaiyun.com/gongm24/article/details/...

死牛胖子的技术随笔 831

RabbitMQ 6种队列模式—— Topics主题模式

路由模式是指定固定的路由键 routingKey,而主题模式可以模糊匹配路由键 routingKey。 主题模式 topics 模式支持模糊匹配RoutingKey,就像是sql中的 like子句模糊查询,而路由模式等同于sql中的where子句等值查询 topic交换机背后的路由算法类似于direct交换,使用特定路由键发送的消息将被传递到使用匹配绑定键绑定的所有队列。 如上图,主题模式不能具有任意的 routingKey,必须由一个英文句点“.”分隔的字符串(分割符),比如...

祝我飞黄腾达 2592

【Elasticsearch专栏 16】深入探索:Elasticsearch的Master选举机制及其影响因素分析

Elasticsearch的Master选举机制是其分布式架构的基石,确保集群高可用性和数据一致性。通过多数派协议,节点间交换信息并投票选举Master,以维护集群状态和处理请求。该机制自动处理故障转移,保障服务连续性。

weixin_40736233的博客 1774

【RabbitMQ之路由类型Topic】

Topic Exchange–将路由键和topic进行匹配。此时队列需要绑定要一个topic上。 任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey中指定topic的Queue上 1、这种模式较为复杂,简单来说,就是每个队列都有其关心的topic,所有的消息都带有一个“标题”(RouteKey),Exchange会将消息转发到所有关注主题能与RouteKey模糊匹配的队列。 2、这种模式需要RouteKey,也许要提前绑定Exchange与Queue。 3、...

代号_巧克力 502

Python数据清洗实战:用RapidFuzz搞定模糊匹配(附完整代码示例)

本文详细介绍了在Python数据清洗中,如何利用RapidFuzz库高效解决字符模糊匹配难题。通过实战代码示例,演示了从处理拼写错误、格式不一致的脏数据,到构建实体对齐与记录去重的完整清洗管道,帮助开发者提升数据质量与处理效率。

pear55的博客 529

你不必懂AI,但必须会用AI:写给所有焦虑中的职场人

AI时代不必焦虑学技术,关键在于用AI解决实际问题。文章指出,99%的人只需成为AI使用者而非建造者,核心竞争力在于结合业务痛点运用AI工具提升效率。与其盲目学习工具,不如梳理工作流程,识别可优化环节,让AI赋能重复性、标准化任务。行业经验与AI工具的结合才是真正的职场护城河。建议从具体工作场景出发,寻找匹配的AI解决方案,迈出应用第一步。

hundred98的博客 716

RabbitMQ官网教程5——topic

前面的章节我们改进了日志系统,利用direct交换机,可以选择性的接收日志。但是,这仍然有局限,不能基于多个规则进行路由。在日志系统里,我们可能不只根据安全级别订阅日志,还可能想根据日志源来订阅。就像Unix 工具syslog,根据安全级别及设备来路由日志。这样就比较灵活了。为了实现这种效果,我们需要学习topic交换机。   topic交换机         发送到topic交换机的消息,

爱很遥远 507

RDP Wrapper失效了?别慌!教你如何手动为Windows 10/11最新版本添加rdpwrap.ini配置

本文详细介绍了当RDP Wrapper在Windows 10/11最新版本中失效时,如何手动添加rdpwrap.ini配置以恢复多用户远程桌面功能。通过获取最新配置文件、安全替换配置的完整流程以及高级手动配置技巧,帮助用户解决[Not support]问题,确保远程工作流程不受系统更新影响。

weixin_30765577的博客 624

RabbitMQ入门(二)SpringBoot+RabbitMQ整合

SpringBoot+RabbitMQ整合 1、引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> ...

hellogbaby的博客 1147

【基于大模型 + FAISS 的本地知识库与智能 PPT 生成系统:从架构到实现】

本文介绍了一个基于大模型(Ollama+DeepSeek)和FAISS向量数据库的本地知识库与智能PPT生成系统。该系统采用前后端分离架构,包含文档管理、向量检索、PPT生成等核心模块,可实现文档智能解析、语义检索和结构化PPT自动生成。通过MVC设计模式,系统实现了从文档上传、向量存储到内容检索、PPT生成的全流程自动化,有效解决了企业知识管理效率低下的问题。架构设计清晰,功能模块完备,为企业和个人提供了高效的文档处理与二次创作解决方案。

聚焦大数据、AI、数据库三大核心领域,分享 Flink/Spark 实时计算、数仓架构设计、AI 模型落地、数据库性能调优的实战干货,附可直接运行的源码与方案。提供企业技术内训、项目咨询与定制化服务,助力开发者与企业高效搞定数智技术难题。 1599

Ceres&OpenCV 单目相机标定(论文复现)

Ceres&OpenCV 单目相机标定(论文复现)

dayuhaitang1的博客 370

SpringBoot整合RabbitMQ入门学习(二)[保证消息的可靠性]

SpringBoot整合RabbitMQ入门学习(二)  使用RabbitMQ过程中,消费者对消息处理时,难免会出现异常情况。但是消息往往都是非常关键的,为保证数据的完整性,RabbitMQ有两种机制可以保证消息的高可用性。事务机制和 confirm 机制,本文用confirm机制来探讨RabbitMQ的消息高可用性。 一、情景分析 1.生产者弄丢了数据 生产者将数据发送到 RabbitMQ 的时...

红烧大熊猫的博客 761

【AI测试干货】软件测试 - 全流程提示词完整体系

本篇教程是一套专为软件测试工程师打造的 AI 协作提示词体系。从测试计划制定、用例设计、自动化脚本开发、缺陷管理,到测试报告生成,每个环节都提供了结构化的提示词模板,帮助测试人员高效利用 AI 提升工作质量。

blues_C的博客 346

RabbitMQ学习(二)入门案例与五种模式(简单模式、发布订阅模式、路由模式、主题模式、Header参数模式)及整合SpringBoot案例

RabbitMQ组件与架构、核心组成部分、运行流程 RabbitMQ交换机模式、简单模式、路由模式、主题模式、Header参数模式 RabbitMQ整合SpringBoot案例

Huathy的博客 1543

【R语言】基于Biomod2集成平台探究物种分布区的构建流程(SDMs)

我为什么想要写这个内容呢?其实我已经想了很久了,但是一直没有把所有的代码给理清楚,此外这将是我之后研究的主要方向。本博客讲述了如何基于Biomod2集成平台构建物种分布模型的全流程,以及我在使用该模型时的一些心得,同时还有我提供的一些小福利(一键处理代码),可以十分快捷的帮助你完成SDMs的构建,写出你的中英文论文。

amyniez的博客,欢迎交流讨论 3889

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SpringBoot如何整合RabbitMQ

好久没有写博客了,终日忙于生计,真是人过30不如狗啊,但写点什么好呢?想想当年自己入门时候那痛苦的经历,还是写点优质实用的入门文章吧,既满足了自己好为人师的本性,也能给后辈提供一些帮助。今天咱们就来聊聊springboot整合rabbitmq的那些事吧。SpringBoot的风头之盛不多说了,我是在2016年首次接触springboot的,当时自己要写个APP,后台采用了springboot。当时还真是个新鲜事物,没想到以后几年的发展犹如黄河泛滥,一发不可收拾…rabbitmq官网https。...

ShuSheng007的程序人生 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RabbitMQ与SpringBoot整合详解

一、前言   本文章总体简介,会采用Docker下载安装RabbitMQ,详细介绍RabbitMQ优缺点及其相关技术知识点,SpringBoot作为整合学习的基础架构。看完本片文章,你会了解消息队列RabbitMQ,你会使用消息队列RabbitMQ。 二、消息队列   当第一次出现在我脑中这个词语时,我会问自己什么时消息队列?我做的项目为什么没有消息队列?我做的项目可以用消息队列么?如果可以用消息队列这要怎么使用消息队列?消息队列能解决项目什么问题?等等问题会出现在我的脑海…,然而我将会在面文章中对自己慢慢

vanGogh的博客 7182

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

RabbitMQ 基本api使用 以及和spring、springboot整合

1 RabbitMQ介绍 1.1 RabbitMQ简介及使用场景 MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced MessageQueue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官网 消息队列应用场景: 任务异步处理。 将不需要同...

qqxhb 资源共享 2448

SpringBoot整合实现RabbitMQ

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。创建2个springboot项目,一个 mq-rabbitmq-producer(生产者),一个mq-rabbitmq-consumer(消费者)。rabbitmq配置类:配置Exchange、Queue、以及绑定交换机。rabbitmq配置类:配置Exchange、Queue、以及绑定交换机。

weixin_39956506的博客 5351

SpringBoot整合RabbitMQ

SpringBoot整合RabbitMQ

不能再留遗憾了的博客 1663

RabbitMQ快速入门 整合 SpringBoot

RabbitMQ快速入门及SpringBoot 整合

weixin_42396003的博客 853

【RabbitMQ】4 Spring/SpringBoot整合RabbitMQ

Spring/SpringBoot整合RabbitMQ

qq_43745578的博客 1578

SpringBoot(21) 整合RabbitMQ

一、前言 RabbitMQ是实现了AMQP(高级消息队列协议)的开源消息中间件,RabbitMQ服务器是用Erlang(面向并发的编程语言)编写的。 RabbitMQ官网下载地址:https://www.rabbitmq.com/download.html Docker部署则执行如下命令即可 # RABBITMQ_DEFAULT_USER:用户名,RABBITMQ_DEFAULT_PASS:密码 ...

郑清 2435

SpringBoot整合RabbitMQ详细案例(入门RabbitMQ看这一篇就够了)

SpringBoot整合RabbitMQ详细案例(入门RabbitMQ看这一篇就够了)1、RabbitMQ的使用场景1.1、异步处理1.2、 应用解耦1.3、流量削峰2、RabbitMQ 交换机介绍2.1、Direct exchange(直连交换机)2.2 、扇型交换机2.3、主题交换机3、队列3.1 、 队列介绍3.2、队列持久化4、RabbitMQ 整合SpringBoot 使用4.1、前期准备工作4.2 测试Direct exchange(直连交换机)4.3 测试扇型交换机(funout exchan

奋斗的哼哼 2155

SpringBoot整合RabbitMQ快速上手入门

接收者(一定要注意一个地方,这里up返回值为空类型,也就是不返回响应,如果rabbit监听器要返回响应要在发送者中设置一下Replyto)Config(这是一个最基本的Rabbit搭建,仅仅一个queue,大家可以根据自己情况添加exchange,binding等)首先我们还是讲一下大致步骤(想不想定义实体类都可以,定义实体类的话,要以json的形式发送)2.我们要进行消息的发送和接收,所以自然需要配置我们的发送者和接收者。首先我们要知道RabbitMQ中,我们需要发送和接收消息。

2303_80701832的博客 1288
上一篇: java多线程批量处理list集合中的数据
下一篇: springboot整合rabbitmq实现消息确认机制
若往夕之
博客等级 码龄9年 20粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值