当前位置: 首页 > news >正文

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集成示例。根据具体需求,你可能需要进一步配置消息确认、事务、消费者组、消息转换等高级特性,欢迎拍砖讨论...

相关文章:

SpringBoot中如何使用RabbitMq

一&#xff0c;RabbitMQ简介和基本概念 RabbitMQ 是一个开源的消息中间件&#xff0c;基于 AMQP&#xff08;高级消息队列协议&#xff09;实现。 它由 Erlang 语言开发&#xff0c;并且支持多种编程语言&#xff0c;包括 Java、Python、Ruby、PHP 和 C# 等&#xff0c; 下载…...

LangChain自定义Embedding封装 之 ERNIE Bot

LangChain自定义Embedding封装 之 ERNIE Bot 百度飞浆平台的 ERNIE Bot 导入下面方法 和 环境 &#xff0c;即可验证 embedding ERNIE_Bot_embedding() class ERNIE_Bot_embedding(BaseModel, Embeddings):client: Anyroot_validator()def validate_environment(cls, value…...

Git 安装教程

1、登录git 官方网站&#xff1a;https://git-scm.com/ 点击左边的 Downloads 或者 右边标识的下载标志&#xff0c;它根据电脑操作系统自动匹配版本 Downloads for Windows 2、以 windows 为例下载对应版本 网络有时可能不大好&#xff0c;阿里镜像下载超快。 下载好以后&a…...

Lua 类管理器

Lua 类管理器 -- ***** Class Manager 类管理*****‘local ClassManager {}local this ClassManagerfunction ClassManager.Class(className, ...)print(ClassManager::Class)--print(className)-- 构建类local cls {__className className}--print(cls)-- 父类集合local …...

实现领域驱动设计(DDD)系列详解:领域模型的持久化

领域驱动设计主要通过限界上下文应对复杂度&#xff0c;它是绑定业务架构、应用架构和数据架构的关键架构单元。设计由领域而非数据驱动&#xff0c;且为了保证定义了领域模型的应用架构和定义了数据模型的数据架构的变化方向相同&#xff0c;就应该在领域建模阶段率先定义领域…...

配置sublime的中的C++编译器(.sublime-build),实现C++20

GCC 4.8: 支持 C11 (部分) GCC 4.9: 支持 C11 和 C14 (部分) GCC 5: 完全支持 C14 GCC 6: 支持 C14 和 C17 (部分) GCC 7: 支持 C17 (大部分) GCC 8: 完全支持 C17&#xff0c;部分支持 C20 GCC 9: 支持更多的 C20 特性 GCC 10: 支持大部分 C20 特性 GCC 11: 更全面地支持 C20 …...

Android14 - 前台Service、图片选择器 、OpenJDK 17、其他适配

前台服务 1. 指定前台服务类型 以 Android 14(API 级别 34)或更高版本为目标平台的应用,需要为应用中的每项前台服务指定服务类型,因为系统需要特定类型的前台服务满足特定用例。具体介绍如下: 在Android 10 在 <service> 元素内引入了 android:foregroundServiceT…...

数据恢复教程:如何从硬盘、SD存储卡、数码相机中恢复误删除数据。

您正在摆弄 Android 设备。突然&#xff0c;您意外删除了一张或多张图片。不用担心&#xff0c;您总能找到一款价格实惠的数据恢复应用。这款先进的软件可帮助 Android 用户从硬盘、安全数字 (SD) 或存储卡以及数码相机中恢复已删除的数据。 Android 上数据被删除的主要原因 在…...

谷粒商城实战笔记-47-商品服务-API-三级分类-网关统一配置跨域

文章目录 一&#xff0c;跨域问题1&#xff0c;跨域问题产生的原因2&#xff0c;预检请求3&#xff0c;跨域解决方案3.1 CORS (Cross-Origin Resource Sharing)后端配置示例&#xff08;Spring Boot&#xff09; 3.2 JSONP (JSON with Padding)3.3 代理服务器Nginx代理配置示例…...

stm32平台为例的软件模拟时间,代替RTC调试

stm32平台为例的软件模拟时间&#xff0c;代替RTC调试 我们在开发项目的时候&#xff0c;如果用到RTC&#xff0c;如果真正等待RTC到达指定的时间&#xff0c;那调试时间就太长了。 比如每隔半个小时&#xff0c;存储一次数据&#xff0c;如果要观察10次存储的效果&#xff0…...

《设计模式之美》读书笔记2

从Linux学习应对大型复杂项目的方法&#xff1a; 1、封装与抽象&#xff1a;封装了不同类型设备的访问细节&#xff0c;抽象为统一的文件访问方式&#xff0c;更高层的代码就能基于统一的访问方式&#xff0c;来访问底层不同类型的设备。这样做的好处是&#xff0c;隔离底层设备…...

C++ STL set_difference 用法

一&#xff1a;功能 给定两个集合A&#xff0c;B&#xff1b;计算集合的差集&#xff0c;即计算出那些只包含在A中而不包含在B中的元素。 二&#xff1a;用法 #include <vector> #include <algorithm> #include <iostream>int main() {std::vector<int&…...

【基础算法总结】优先级队列

优先级队列 1.最后一块石头的重量2.数据流中的第 K 大元素4.前K个高频单词4.数据流的中位数 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1…...

python-绝对值排序(赛氪OJ)

[题目描述] 输入 n 个整数&#xff0c;按照绝对值从大到小排序后输出。保证所有整数的绝对值不同。输入格式&#xff1a; 输入数据有多组&#xff0c;每组占一行&#xff0c;每行的第一个数字为 n ,接着是 n 个整数&#xff0c; n0 表示输入数据的结束&#xff0c;不做处理。输…...

成功者的几个好习惯,你具备了几个

每个人都想成为自己领域的佼佼者&#xff0c;然而&#xff0c;成功并非偶然&#xff0c;它往往与一系列良好的习惯紧密相连。这些习惯如同灯塔&#xff0c;指引着成功者在波涛汹涌的大海中稳健前行。 一、设定明确目标 没有明确的目标&#xff0c;就如同航海没有指南针&#…...

centos中zabbix安装、卸载及遇到的问题

目录 Zabbix简介Zabbix5.0和Zabbix7.0的区别监控能力方面模板和 API 方面性能、速度方面 centos7安装Zabbix(5.0)安装zabbix遇到的问题卸载Zabbix Zabbix简介 Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参…...

php编译安装

一、基础环境准备 # php使用www用户 useradd -s /sbin/nologin -M www二、下载php包 # 下载地址 https://www.php.net/downloads wget https://www.php.net/distributions/php-8.3.9.tar.gz三、配置编译安装 编译安装之前需要处理必要的依赖&#xff0c;在编译配置安装&…...

[K8S] K8S资源控制器Controller Manager(4)

文章目录 1. 常见的Pod控制器及含义2. Replication Controller控制器2.1 部署ReplicaSet 3. Deployment3.1部署Deployment3.2 运行Deployment3.3 镜像更新方式3.4 Deployment扩容3.5 滚动更新3.6 金丝雀发布(灰度发布)3.7 Deployment版本回退3.8 Deployment 更新策略 4. Daemon…...

C#,.NET常见算法

1.递归算法 1.1.C#递归算法计算阶乘的方法 using System;namespace C_Sharp_Example {public class Program{/// <summary>/// 阶乘&#xff1a;一个正整数的阶乘Factorial是所有小于以及等于该数的正整数的积&#xff0c;0的阶乘是1&#xff0c;n的阶乘是n&#xff0…...

KubeSphere介绍及一键安装k8s

KubeSphere介绍 官网地址&#xff1a;https://kubesphere.io/zh/ KubeSphere愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统&#xff0c;它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用&#xff08;plug-and-play&#xff09;的集成&#xff0…...

出租车计价器控制电路的设计(有完整资料)

编号&#xff1a;CJ-32-2022-046设计简介&#xff1a;本设计是出租车计价器控制电路的设计&#xff0c;主要实现以下功能&#xff1a;1、出租车计价器系统以Km 为单位统计里程&#xff0c;以元为单位统计总金额&#xff1b; 2、通过霍尔传感器和电机获取速度和路程&#xff1b;…...

治理场景数字孪生智慧推演方案(2026完整版)

治理场景数字孪生智慧推演方案(2026完整版) 第1章项目概述 1.1项目背景 数字化、智能化转型是新时代国家治理体系和治理能力现代化建设的核心抓手与必经路径,也是各地政府推进政务提质、基层增效、民生优化的核心工作方向。数字孪生技术作为打通物理治理场景与数字虚拟场景的…...

5分钟学会无损视频修复:untrunc让损坏MP4/MOV文件瞬间复活

5分钟学会无损视频修复&#xff1a;untrunc让损坏MP4/MOV文件瞬间复活 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否经历过重要视频突然无法播放的绝望时刻…...

电子行业市场机会识别与产品落地实战指南

1. 市场机会的本质&#xff1a;从“风口”到“价值锚点”的认知重塑“市场机会”这四个字&#xff0c;在电子行业里听得耳朵都快起茧了。从投资人到创业者&#xff0c;从工程师到销售&#xff0c;人人都在谈论它。但说实话&#xff0c;很多人对这个词的理解&#xff0c;还停留在…...

现代C++中的编译期反射替代思路

现代C中的编译期反射替代思路C 长期缺乏完整标准反射能力&#xff0c;但工程上依然经常需要“遍历字段、生成元信息、自动序列化、自动注册”。在正式反射广泛可用之前&#xff0c;开发者通常通过宏、模板特化、tuple 适配和代码生成等方式实现替代方案。一种常见思路是手工提供…...

Live Server深度解析:如何用实时重载技术提升前端开发效率300%

Live Server深度解析&#xff1a;如何用实时重载技术提升前端开发效率300% 【免费下载链接】vscode-live-server Launch a development local Server with live reload feature for static & dynamic pages. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-live-se…...

LeaderKey.app开发者指南:深入源码解析架构设计

LeaderKey.app开发者指南&#xff1a;深入源码解析架构设计 【免费下载链接】LeaderKey The *faster than your launcher* launcher 项目地址: https://gitcode.com/gh_mirrors/le/LeaderKey LeaderKey.app是一款轻量级启动器应用&#xff0c;以"比你的启动器更快&…...

Linux微信小程序开发终极指南:从零搭建完整开发环境

Linux微信小程序开发终极指南&#xff1a;从零搭建完整开发环境 【免费下载链接】wechat-web-devtools-linux 适用于微信小程序的微信开发者工具 Linux移植版 项目地址: https://gitcode.com/gh_mirrors/we/wechat-web-devtools-linux 还在为Linux系统无法进行微信小程序…...

Codex 上下文提供详解与操作指南

1. 文档目标 这份文档解决的是一个非常实际的问题&#xff1a; 怎么给 Codex 足够完整的上下文什么信息是必须给的&#xff0c;什么信息是可选但高价值的怎样让 Codex 在一次任务里快速进入正确状态怎样避免“我已经说了很多&#xff0c;但结果还是不对”怎样把上下文提供方式变…...

探索高效仓库管理革命:揭秘GreaterWMS开源系统的全面指南

探索高效仓库管理革命&#xff1a;揭秘GreaterWMS开源系统的全面指南 【免费下载链接】GreaterWMS This Inventory management system is the currently Ford Asia Pacific after-sales logistics warehousing supply chain process . After I leave Ford , I start this proje…...