前言
前面学习了 RabbitMQ 基础,现在主要记录下学习 Spring Boot 整合 RabbitMQ ,调用它的 API ,以及中间使用的相关功能的记录。
正文
我这里测试都是使用的是 topic
交换器,Spring Boot 2.0.0, jdk 1.8
配置
Spring Boot 版本 2.0.0
在 pom.xml
文件中引入 AMQP 的依赖
1 | <dependency> |
在系统配置文件中加入连接属性
1 | spring: |
基本的使用
消费者
新增一个消费者类:
1 |
|
配置类
新增 RabbitMQ 的配置类,主要是对消费者的队列,交换器,路由键的一些设置:
1 |
|
生产者
1 |
|
测试发送消息
先启动系统启动类,消费者开始订阅,启动测试类发送消息。
1 | (SpringRunner.class) |
可以在消费者接收到信息,并且发送端将打出日志 成功发送消息的记录,也可以测试下 Publisher Confirms and Returns机制
主要是测试 ConfirmCallback
和 ReturnCallback
这两个方法。
ConfirmCallback
,确认消息是否到达交换器,例如我们发送一个消息到一个你没有创建过的 交换器上面去,看看情况,ReturnCallback
,确认消息是否到达队列,我们可以这样测试,定义一个路由键,不会被任何队列订阅到,最后查看结果就可以了。
使用注解的方式
引入依赖和连接参数
跟文章第一步的配置一样的。
消费者
1 |
|
主要是使用到 @RabbitListener
,虽然看起来参数很多,仔细的你会发现这个和写配置类里面的基本属性是一摸一样的,没有任何区别。
需要注意的是我在这里多做了个有返回值的消息,这个使用异常的话,会不断重试消息,从而阻塞了线程。而且使用它的时候只能使用带有 receive
的方法给它发送消息。
生产者
生产者没什么变化。
1 |
|
测试
1 | (SpringRunner.class) |