在java中使用RabbitMQ的步骤

一.引入RabbitMQ依赖

XML 复制代码
        <!--AMQP依赖,包含RabbitMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

<!--        jackson消息转换器-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

消息发送方和消费方都需要这个依赖

二.完成RabbitMQ相关配置

地址配置在yaml文件中,或者nacos中

同样,发送方和消费方都需要配置

三.消息转换器配置

消息转换器在发送方和消费方都需要,可以直接在共同的父类包中配置,

这个配置需要被扫描到,如果抽取出来配置在父类包中,包名不一样,微服务程序启动时候无法正常扫描到;可以采用springboot自动装配的原理,在spring.factories文件里添加MQ的配置文件所在包

四.编写消息消费者

新建listener包,使用@RabbitListener注解监听消息,而其中的业务代码,是从原来的程序中,将同步调用,修改为基于MQ发消息的模式调用

交换机默认类型是direct,默认持久化,这两个参数为设置,采用默认值;

orderService通过构造函数注解@RequiredArgsConstructor注入

此处的Long orderId对应的就是消息发送者发送过来的message;

五.编写消息生产者

将直接调用微服务,修改为向微服务发送消息,发送的消息需要带有必要的参数,参数包含在message中.

在PayController对应的serciveImpl中:

基于构造函数注入RabbitTemplate,不再需要远程调用

将需要发送到RabbitMQ的代码用try-catch包起来,防止因为发消息失败影响到核心业务

六.运行

程序重新启动后,队列和交换机就自动创建完成,并可以完成相应操作

相关推荐
秋91 小时前
java项目中cpu飙升排查及解决方法
java·开发语言
野生技术架构师1 小时前
牛客网2026最新大厂Java高频面试题精选(附标准答案)
java·开发语言
PH = 71 小时前
JAVA的SPI机制
java·开发语言
一 乐1 小时前
高校实习信息发布网站|基于Spring Boot的高校实习信息发布网站的设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·高校实习信息发布网站
weelinking1 小时前
【产品】11_实现后端接口——数据在背后如何流动
java·人工智能·python·sql·oracle·json·ai编程
摇滚侠1 小时前
东方通替换tomcat,实战经验
java
utf8mb4安全女神2 小时前
【rsyslog服务】把所有服务的“临界点”以上的错误都保存在/var/log/alert.log⽇志中
java·前端·javascript
带刺的坐椅2 小时前
Solon Server 启动模式深度解析:从 0.3MB 内核到 10+ Server 插件
java·http·solon·jetty·undertow
郝学胜-神的一滴2 小时前
干货版《算法导论》07:递归视角下的选择排序与归并排序
java·数据结构·c++·python·程序人生·算法·排序算法
掉鱼的猫2 小时前
Solon Server 启动模式深度解析:从 0.3MB 内核到 10+ Server 插件
java·http