目录
SpringbootRabbitmqApplication启动类
RabbitMQ消息队列
- 消息中间件是位于两个或多个应用程序之间的中介软件,它允许应用程序相互通信和数据交换,而无需直接连接和交互。
- RabbitMQ 作为消息中间件,提供了这种消息传递的机制和基础架构,使得不同系统之间能够通过异步消息队列进行有效通信。
- 它是一个基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)协议的消息代理,提供了跨应用和跨服务的异步通信能力。
RabbitMQ的核心概念包括:
- 消息(Message):数据的最小单位,包含了消息头和消息体。
- 队列(Queue):用于存储消息,等待被消费者接收和处理。
- 交换器(Exchange):负责接收消息并将其路由到合适的队列,基于预定义的规则。
- 直接交换(Direct Exchange):基于路由键的精确匹配。
- 主题交换(Topic Exchange):基于路由键的模式匹配。
- 扇形交换(Fanout Exchange):广播消息到所有绑定的队列。
- 首选交换(Headers Exchange):基于消息头进行匹配。(headers交换机和direct交换机完全一致,但性能差很多,目前几乎用不到了)
- 绑定(Binding):定义交换器与队列之间的关系,确定消息的路由规则。
- 路由键(Routing Key):用于在交换器和队列之间路由消息。
- 消费者(Consumer):从队列中接收和处理消息的应用程序或服务。
- 发布者(Producer):向交换器发送消息的应用程序或服务。
RabbitMQ广泛用于构建分布式系统、微服务架构和事件驱动架构,以实现异步通信、负载分担、数据解耦和高可用性。
项目总结
添加依赖:在Spring Boot项目的
pom.xml
文件中添加RabbitMQ的依赖配置RabbitMQ连接信息:在
application.properties
或application.yml
文件中配置RabbitMQ的连接信息,包括主机名、端口号、用户名、密码等信息。创建配置类:
使用
@Bean
注解定义Exchange和Queue,并绑定它们的关系,以确保消息能够被正确路由和传递。使用@Bean注入CachingConnectionFactory缓存 连接工厂对象,用于开启RabbitMQ的消息发送确认模式
创建生产者:编写一个发送消息的生产者(Producer),可以是一个服务类或控制器方法。使用
RabbitTemplate
来发送消息到RabbitMQ的Exchange。创建消费者:编写一个接收消息的消费者(Consumer),使用@RabbitListener监听指定的Queue,并处理接收到的消息,比如打印在控制台上。
启动项目和RabbitMQ服务后,项目的工作流程:
打开浏览器访问页面,在文本域填写要发送信息,点击“发送”,
后端IndexController控制器接收到用户提交的消息后,由生产者将消息发送给RabbitMQ的交换机,RabbitMQ再将消息根据路由键路由到队列中,并且将结果反馈给服务器,服务器将打印”消息发送成功“的日志
消费者中监听此队列就会立刻收到并处理接收到的消息,打印到控制台上
自己从填写要发送的信息的地方开始分析,顺藤摸瓜,将项目的几个文件串连起来
新建一个SpringBoot项目
项目结构: