SpringBoot中如何使用RabbitMq

一,RabbitMQ简介和基本概念

RabbitMQ 是一个开源的消息中间件,基于 AMQP(高级消息队列协议)实现。
它由 Erlang 语言开发,并且支持多种编程语言,包括 Java、Python、Ruby、PHP 和 C# 等,

下载并安装Erlang:
因此在安装RabbitMQ之前必须先安装并配置好Erlang环境,安装完成后,需要将Erlang的bin目录添加到系统的PATH环境变量中,这样可以在命令行中直接运行erl命令来验证Erlang是否安装成功;

下载并安装RabbitMQ:
访问RabbitMQ的官方网站,下载最新版本的RabbitMQ安装包,解压下载的安装包,找到安装程序并运行;

启动RabbitMQ服务:
安装完成后,进入RabbitMQ的安装目录下的sbin文件夹,打开命令行窗口,
输入以下命令启动RabbitMQ服务: rabbitmq-server.bat 

配置和使用RabbitMQ:
如果需要管理界面,可以启用rabbitmq_management插件
 rabbitmq-plugins enable rabbitmq_management 
然后通过浏览器访问服务器的公网IP地址加端口(默认是15672) 来访问RabbitMQ的Web管理界面。

基本概念
1,消息总线 (Message Queue):RabbitMQ 是一种跨进程、异步的通信机制,用于上下游传递消息。通过消息系统来确保消息的可靠传递。
2,交换机 (Exchange):生产者发送消息时,需要将消息路由到一个或多个交换机。交换机根据路由规则将不同的消息路由到不同的队列。
3,队列 (Queue):消费者订阅并监听队列,当有消息过来时,就立即消费。
4,绑定 (Binding):交换机和队列之间的连接关系称为绑定。每个绑定都有一个键(Key),用于指定如何将消息从交换机路由到队列。
 

二,Springboot中如何使用RabbitMq例子,

在Spring Boot中使用RabbitMQ,你需要做以下几步:

1,添加依赖:在pom.xml中添加Spring Boot的RabbitMQ依赖。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2,配置RabbitMQ:在application.properties 或 application.yml 中配置RabbitMQ的连接信息。

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
# 或密码修改为自己的设置

3,配置Queue、Exchange和Binding:通过Java配置类定义队列、交换器和绑定关系。

@Configuration
public class RabbitMQConfig {// 建立指定名称的列队Bean@BeanQueue myQueue() {return new Queue("myQueue", true);}// 建立指定名称的交换机Bean@BeanDirectExchange myExchange() {return new DirectExchange("myExchange");}// 建立指定名称的绑定(为列队和交换机),// 以便指定生产者的消息如何从交换机路由到哪个队列中@BeanBinding binding(Queue myQueue, DirectExchange myExchange) {return BindingBuilder.bind(myQueue).to(myExchange).with("myRoutingKey");}
}

4,发送和接收消息:通过RabbitTemplate发送消息,并通过@RabbitListener注解的方法接收消息。

// 消息生产者
@Service
public class RabbitMQService {@Autowiredprivate RabbitTemplate rabbitTemplate;public void sendMessage(String message) {rabbitTemplate.convertAndSend("myExchange", "myRoutingKey", message);}
}
// 消息消费者
@Component
public class RabbitMQListener {@RabbitListener(queues = "myQueue")public void receiveMessage(String message) {System.out.println("Received message: " + message);}
}

5,确保你的Spring Boot应用程序启动类上有 @EnableRabbit 注解。

@SpringBootApplication
@EnableRabbit
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

以上步骤提供了一个简单的RabbitMQ集成示例。根据具体需求,你可能需要进一步配置消息确认、事务、消费者组、消息转换等高级特性,欢迎拍砖讨论...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JCR一区级 | Matlab实现CPO-Transformer-LSTM多变量回归预测【2024新算法】

JCR一区级 | Matlab实现CPO-Transformer-LSTM多变量回归预测【2024新算法】 目录 JCR一区级 | Matlab实现CPO-Transformer-LSTM多变量回归预测【2024新算法】效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【JCR一区级】Matlab实现CPO-Transformer-LSTM多变量回归预测…

<数据集>AffectNet表情识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;29752张 标注数量(xml文件个数)&#xff1a;29752 标注数量(txt文件个数)&#xff1a;29752 标注类别数&#xff1a;7 标注类别名称&#xff1a;[anger,contempt,disgust,fear,happy,neutral,sad,surprise] 序号类…

新手小白的pytorch学习第十弹----多类别分类问题模型以及九、十弹的练习

目录 1 多类别分类模型1.1 创建数据1.2 创建模型1.3 模型传出的数据1.4 损失函数和优化器1.5 训练和测试1.6 衡量模型性能的指标 2 练习Exercise 之前我们已经学习了 二分类问题&#xff0c;二分类就像抛硬币正面和反面&#xff0c;只有两种情况。 这里我们要探讨一个 多类别…

css之margin塌陷

margin塌陷 一、margin塌陷的概念二、代码演示三、效果图示描述四、解决后的效果 一、margin塌陷的概念 margin塌陷是指在CSS布局中&#xff0c;当两个或多个元素的垂直margin&#xff08;上外边距和下外边距&#xff09;相遇时&#xff0c;它们不会按照预期叠加&#xff0c;而…

leetcode-78. 子集

题目描述 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的 子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],…

高职国培丨数据分析与数据挖掘课程实施能力提升培训班正式开班

7月15日&#xff0c;由广东机电职业技术学院牵头&#xff0c;广东泰迪智能科技股份有限公司作为合作单位的“高职教师数据分析与数据挖掘课程实施能力提升培训班&#xff08;高职国培&#xff09;”正式开班。来自广东省各地36位高校教师参与本次线下师资国培班。 广东机电职业…

11 - FFmpeg - 编码 AAC

Planar 模式是 ffmpeg内部存储模式&#xff0c;我们实际使用的音频文件都是Packed模式的。 FFmpeq解码不同格式的音频输出的音频采样格式不是一样。 其中AAC解码输出的数据为浮点型的 AV_SAMPLE_FMT_FLTP 格式&#xff0c;MP3 解码输出的数据为 AV_SAMPLE_FMT_S16P 格式(使用的…

【区块链 + 智慧政务】南京发改委:基于区块链的项目评审与专家管理系统 | FISCO BCOS应用案例

围绕招投标、项目评审过程中的信息化管理&#xff0c;南京市发展和改革委员会上线基于区块链的项目评审与专家管理系统&#xff0c; 规范南京市发改委专家评审&#xff08;咨询&#xff09;活动&#xff0c;健全专家库管理机制&#xff0c;提升行政决策质量和政策研究水平。该系…

HarmonyOS 状态管理(一)

1. HarmonyOS 状态管理 1.1. 说明 官方文档&#xff08;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-state-management-V5&#xff09; 1.1.1. 状态管理&#xff08;V1稳定版&#xff09; 状态管理&#xff08;V1稳定版&#xff09;提供了多种…

【iOS】——SideTable

SideTable Side Table主要用于存储和管理对象的额外信息&#xff0c;特别是与弱引用相关的数据。Side Table的设计和使用是Objective-C运行时实现弱引用的基础&#xff0c;使得ARC&#xff08;Automatic Reference Counting&#xff09;能够正确地处理弱引用的生命周期。 新版…

【系统架构设计 每日一问】四 如何对关系型数据库及NoSql数据库选型

根据不同的业务需求和场景&#xff0c;选择适合的数据库类型至关重要。以下是一个优化后的表格展示&#xff0c;涵盖了管理型系统、大流量系统、日志型系统、搜索型系统、事务型系统、离线计算和实时计算七大类业务系统的数据库选型建议。先明确下NoSQL的分类 NoSQL数据库分类…

预训练语言模型实践笔记

Roberta output_hidden_statesTrue和last_hidden_states和pooler_output 在使用像BERT或RoBERTa这样的transformer模型时&#xff0c;output_hidden_states和last_hidden_state是两个不同的概念。 output_hidden_states: 这是一个布尔值&#xff0c;决定了模型是否应该返回所…

大数据学习之sparkstreaming

SparkStreaming idea中初步实现 Spark core: SparkContext 核心数据结构&#xff1a;RDD Spark sql: SparkSession 核心数据结构&#xff1a;DataFrame Spark streaming: StreamingContext 核心数据结构&#xff1a;DStream(底层封装了RDD)&#xff0c;遍历出其中的RDD即可进行…

ReadAgent,一款具有要点记忆的人工智能阅读代理

人工智能咨询培训老师叶梓 转载标明出处 现有的大模型&#xff08;LLMs&#xff09;在处理长文本时受限于固定的最大上下文长度&#xff0c;并且当输入文本越来越长时&#xff0c;性能往往会下降&#xff0c;即使在没有超出明确上下文窗口的情况下&#xff0c;LLMs 的性能也会随…

中文之美:荷·雅称

文章目录 引言I 荷雅称水宫仙子、六月花神水芝、水芸溪客、水旦芙蕖、菡萏朱华、红蕖风荷、静客II 与荷、莲相关的句子、诗词周敦颐李商隐李重元杨公远孟浩然刘光祖苏轼汪曾祺席慕蓉余光中引言 中文之美,美在诗词歌赋,美在绝句华章,也美在对事物名称的雅致表达。 中文对万物…

Speaker Tracking SOTA 文章翻译

AV-A-PF Abstract 在室内环境中跟踪多个移动说话者的问题受到了广泛关注。早期的技术完全基于单一模态&#xff0c;例如视觉。最近&#xff0c;多模态信息的融合已被证明在提高跟踪性能以及在像遮挡这样的具有挑战性情况下的鲁棒性方面发挥了重要作用&#xff08;由于摄像机视…

寄存器与CPU和硬盘的关系

寄存器与 CPU 之间的信息传递主要通过数据总线、地址总线和控制总线来实现&#xff1a; 1. 数据总线&#xff08;Data Bus&#xff09;&#xff1a;用于在 CPU 和寄存器之间传输数据。当 CPU 需要从寄存器中读取数据时&#xff0c;数据通过数据总线从寄存器传输到 CPU&#xff…

GPT-4o mini是什么?

今天&#xff0c;全网都知道 OpenAI 发现货了&#xff01; GPT-4o mini 取代 GPT 3.5&#xff0c;从此坐上正主之位。 从官网信息来看&#xff0c;OpenAI 最新推出的 GPT-4o mini 重新定义了 AI 成本效益的标准&#xff0c;其性能优于前代模型 GPT-3.5 Turbo&#xff0c;且成本…

ruoyi-cloud-plus

1.X项目初始化 (dromara.org)参考文档&#xff01; 可以直接参考以上链接&#xff01;我只是整理我自己需要的部分&#xff0c;方便查看使用。 nacos 服务启动顺序 必须启动基础建设: mysql redis nacos可选启动基础建设: minio(影响文件上传) seata(影响分布式事务 默认开启…

弹性伸缩:如何在Eureka中实现服务的自动扩展和收缩

弹性伸缩&#xff1a;如何在Eureka中实现服务的自动扩展和收缩 在微服务架构中&#xff0c;服务的自动扩展和收缩是实现高可用性和成本效益的关键策略。Eureka&#xff0c;作为Netflix开源的服务发现框架&#xff0c;虽然本身不直接提供自动扩展和收缩的功能&#xff0c;但我们…