28. 消息队列使用场景
1. 前言
除了计算机网络、操作系统等基础知识的考察,各种流行的中间件也深受面试官的青睐。之前的章节已经对缓存中间件的代表 Redis 的面试题进行了分析,本章节将介绍常用的消息中间件,即 RabbitMQ 的基础定义以及使用原因。
2. 消息队列使用场景
面试官提问: 为什么要使用消息队列?能说说消息队列解决了什么问题?
题目解析:
任何工具都有诞生的背景,例如非关系型数据库是为了解决性能以及扩展性问题产生。
常见的消息队列有 RabbitMQ、RocketMQ、Kafka 等,消息队列也是针对特定问题有不同的使用场景,可以抽象为异步处理、应用解耦、流量削峰三种场景。
2.1 异步处理 & 应用解耦
以最常见的在网站注册新用户场景为例,如果经过了基本的业务逻辑之后,要通过短信和邮件的方式验证是否用户本人注册,每个流程的请求响应耗时为 100ms,在同步的方式下总共需要耗时 300ms。