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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NVIDIA Drivers、CUDA、Pytorch安装
  • linux--mount--挂载
  • Spring踩坑:抽象类作为父类,使用子类@Autowired属性进行填充,属性值为null
  • 【CI/CD】docker + Nginx自动化构建部署
  • c++线程传参
  • KCache-go本地缓存,支持本地缓存过期、缓存过期自维护机制。
  • Chrome谷歌浏览器Console(控制台)显示文件名及行数
  • Open3D 计算点云的占地面积
  • HarmonyOS NEXT零基础入门到实战-第四部分
  • 速盾:cdn能防御ddos吗?
  • Codeforces Round 874 (Div. 3)(A~D题)
  • 掌握AJAX技术:从基础到实战
  • reduceByKey 函数详解
  • 1-如何挑选Android编译服务器
  • Git拉取国外远程嵌套代码
  • Android Studio:GIT提交项目到远程仓库
  • angular2开源库收集
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CSS 提示工具(Tooltip)
  • gf框架之分页模块(五) - 自定义分页
  • hadoop集群管理系统搭建规划说明
  • JAVA SE 6 GC调优笔记
  • node 版本过低
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Redash本地开发环境搭建
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Webpack 4x 之路 ( 四 )
  • 力扣(LeetCode)357
  • 嵌入式文件系统
  • 实现菜单下拉伸展折叠效果demo
  • 为什么要用IPython/Jupyter?
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 正则表达式小结
  • 终端用户监控:真实用户监控还是模拟监控?
  • Linux权限管理(week1_day5)--技术流ken
  • 回归生活:清理微信公众号
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • !!Dom4j 学习笔记
  • #mysql 8.0 踩坑日记
  • $NOIp2018$劝退记
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (floyd+补集) poj 3275
  • (zt)最盛行的警世狂言(爆笑)
  • (二)JAVA使用POI操作excel
  • (十七)Flink 容错机制
  • (四)stm32之通信协议
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (正则)提取页面里的img标签
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (自用)仿写程序
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException