消息队列是用于传输和保存消息的容器,也是大型分布式系统中常用的技术,主要解决应用耦合、异步消息、流量削锋等问题。后台开发必学,也是面试重点。
#知识
- 消息队列的作用
- RabbitMQ 消息队列
- 生产消费模型
- 交换机模型
- 死信队列
- 延迟队列
- 消息持久化
- Java 操作
- 集群搭建
- 相关技术:Kafka、ActiveMQ、TubeMQ、RocketMQ
#学习建议
和缓存一样,学会如何使用消息队列并不难,无非就是调用 API 去生产、转发和消费消息。
因此,建议先能够独立使用它,了解消息队列的应用场景;再学习如何在 Java 中操作消息队列中间件,并尝试和项目相结合,感受消息队列带来的好处。
这里我建议初学者先学习 RabbitMQ,比 Kafka 要好理解一些。跟着视频教程实操一遍即可,可以等到面试前再去深入了解原理和高级特性。
#经典面试题
- 使用消息队列有哪些优缺点?
- 如何保证消息消费的幂等性?
- 消息队列有哪些路由模型?
- 你是否用过消息队列,解决过什么问题?
#资源
- 视频
- ⭐️ 2023 黑马 RabbitMQ 消息队列教程:https://www.bilibili.com/video/BV1Xm4y1i7HP (opens new window)(适合快速入门)
- ⭐ 尚硅谷 - 2021 最新 RabbitMQ 教程:https://www.bilibili.com/video/BV1cb4y1o7zz (opens new window)(更加全面)
- 文档
- RabbitMQ 中文文档:http://rabbitmq.mr-ping.com/(opens new window)
- 书籍
- 《RabbitMQ 实战:高效部署分布式消息队列》(经典)
- 工具
- ⭐ RabbitMQ 在线模拟器:http://tryrabbitmq.com/