一、创建案例项目
打开https://start.spring.io/ ,在“Dependencies”中搜索RabbitMQ和web,生成spring-boot项目
点击生成按钮,即下载了一个包含RabbitMQ的项目。
然后导入到Eclipse中。
二、配置RabbitMQ的配置文件
在application.properties 文件里配置上一篇文章中安装的RabbitMQ的信息,如下图
注:这里的端口号是5672,不是上篇中的访问管理后台页面的端口号。
三、消息队列基础知识。
1 Provider
消息生产者,就是投递消息的程序。
2 Consumer
消息消费者,就是接受消息的程序。
3 没有使用消息队列时消息传递方式
4 使用消息队列后消息传递方式
5 什么是队列?
队列就像存放了商品的仓库或者商店,是生产商品的工厂和购买商品的用户之间的中转站
6 队列里存储了什么?
在rabbitMQ 中,信息流从你的应用程序出发,来到Rabbitmq 的队列,所有信息可以只存储在
一个队列中。队列可以存储很多信息,因为它基本上是一个无限制的缓冲区,前提是你的机器有足够的存储空间。
7 队列和应用程序的关系?
多个生产者可以将消息发送到同一个队列中,多个消息者也可以只从同一个队列接收数据。
四、创建消息队列
由上面的基础知识可知,消息的队列,其实就是生产者和消费者的中间桥梁。先创建消息队列,并且项目启动时就应创建好。
QueueConfig.class
注意:这里的Queue 导入的是org.springframework.amqp.core.Queue;
五、创建生产者
Sender.class
AmqpTemplate : spring 封装的MQ的模版,直接调用即可。
六、创建消费者
通过注解@RabbitListener 监听消息队列;此注解里的参数queues 可以使用数据格式放入多个消息队列名称,可以监听多个消息队列。
注:创建的消息队列、生产者、消费者的队列名称必须一一对应。
七、测试
代码如下
注入生产者Sender。每隔2秒钟向队列里发送一个消息,消息内容是当前的时间,共发送10次。
运行后,控制台打印如下。
同时,查看RabbitMQ的guan管理后台,会发现多了一个同名队列 “hello-queue”。