springboot整合rabbitmq附源码

前提是对rabbitmq有一定的了解,比如虚拟主机,交换机,队列,信道,绑定,路由键,direct,fanout,topic等

我使用的是docker部署的rabbitmq,看到简书的这个,镜像版本是rabbitmq:3.7.7-management

不会的可以看教程,docker安装rabbitmq
或者这里
docker安装RabbitMQ教程(2023年最详细)
确保rabbitmq环境,并且安装了延迟交换机的插件
插件安装看这里
Docker版RabbitMQ安装延迟队列插件及延迟队列项目应用实战

本教材源码地址:https://gitee.com/jackXUYY/springboot-example.git

springboot整合rabbitmq附源码_第1张图片

目录结构
springboot整合rabbitmq附源码_第2张图片
direct测试

DirectConfig此类是配置direct交换机,及队列,绑定关系

springboot整合rabbitmq附源码_第3张图片
springboot整合rabbitmq附源码_第4张图片
调用sendDirectMessage接口发送后,

springboot整合rabbitmq附源码_第5张图片

只看出到了我们自定义的监听处理,我们先注释掉自定义的处理方式
springboot整合rabbitmq附源码_第6张图片

在重启服务,发送一次
springboot整合rabbitmq附源码_第7张图片
springboot整合rabbitmq附源码_第8张图片
也许是我们传的是map,换成jsonObject就可以了

springboot整合rabbitmq附源码_第9张图片

springboot整合rabbitmq附源码_第10张图片

Fonout演示

配置FonoutConfig
springboot整合rabbitmq附源码_第11张图片
springboot整合rabbitmq附源码_第12张图片
springboot整合rabbitmq附源码_第13张图片

topic演示
TopicConfig
springboot整合rabbitmq附源码_第14张图片
发送消息,指定路由键为man,
springboot整合rabbitmq附源码_第15张图片
springboot整合rabbitmq附源码_第16张图片

springboot整合rabbitmq附源码_第17张图片

延迟交换机测试,场景就是下单了,没付费,过期取消订单

LazyExchangeConfig

springboot整合rabbitmq附源码_第18张图片

springboot整合rabbitmq附源码_第19张图片

看到控制台说没有回调可用
Returned message but no callback available
3、延时插件小问题
RabbitMQ延迟队列消息路由失败(312 NO_ROUTE)原因及处理
原因:延迟插件不支持mandatory=true参数,如果启用会同时收到延迟消息和路由失败消息
解决方法
设置mandatory=false

参考:https://blog.csdn.net/bbj12345678/article/details/108433250
https://www.jianshu.com/p/aa2c42e41824

你可能感兴趣的:(java-rabbitmq,spring,boot,rabbitmq)