这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战
Hello World
前提条件:本文建立在已安装并运行
RabbitMQ的场景上。
官方的教程案例中有几个模式,其中Hello World为其中一个,也是最简单的一个。
上图中的P为生产者,C为消费者,中间红色部分为队列,用来保留生产者发送的消息。接下来我们将用Java编写两个程序:
- 发送消息的生产者
- 接收消息的消费者
SpringBoot整合
官网提供的案例采用的是手动创建链接的方式
1 | java复制代码ConnectionFactory factory = new ConnectionFactory(); |
基于目前大多数项目使用了SpringBoot框架,因此本文将以SpringBoot整合的方式进行实现。
pom.xml
1 | xml复制代码<dependency> |
生产者
生产者接口,将消息发送至指定的RabbitMQ队列中。
在生产者类中,我们引用了RabbitTemplate对象,RabbitTemplate是RabbitMQ在与SpringAMQP整合的时,Spring提供的即时消息模板。
同时定义了队列的名称hello_world。
还有一个发送消息的接口,入参为需要发送的消息。
1 | typescript复制代码/** |
调用生产者接口,得到响应结果
通过MQ队列可以看到在指定的hello_world里面有一条信息待消费
消费者
消费者接口,监听来自RabbitMQ指定队列的消息。
在消费者类中,我们定义一个监听的队列QUEUE_NAME, 同时在方法入口上方加上注解@RabbitListener(queues = QUEUE_NAME)用于监听RabbitMQ中指定队列的消息,当队列中有消息的时候,该接口会触发监听事件,将其进行消费。
1 | java复制代码/** |
监听到MQ中有消息,消费并在控制台打印
查看队列,Ready已变为0
最后
文章有写的不好的地方,请大佬们不吝赐教,错误是最能让人成长的,愿我与大佬间的距离逐渐缩短!
如果觉得文章对你有帮助,请 点赞、收藏、关注、评论 一键四连支持,你的支持就是我创作最大的动力!!!
本文转载自: 掘金