MQ的架构作用
1. 消息队列的作用
消息中间件是日常架构中比较流行的一个中间件。
常用的产品有: ActiveMQ, RabbitMQ, RocketMQ, ZeroMQ等。
那么消息中间件在架构中有哪些作用呢?
总结一下,主要作用如下:
异步处理、应用解耦、流量削峰、日志处理
2. 架构作用详解
a. 异步处理
问题背景:
一个用户登陆网址注册,然后系统发短信跟邮件告知注册成功。
解决方案:
1. 串行
依次执行,问题是用户注册后就可以使用了,没必要等验证码跟邮件。
2. 并行
注册成功后,邮件跟验证码用并行等方式执行,问题是邮件跟验证码是非重要的任务,系统注册还要等这俩完成么?
3. 异步
基于异步MQ的处理,用户注册成功后直接把信息异步发送到MQ中,然后邮件系统跟验证码系统主动去拉取数据。
3种解决方案图解:
b. 应用解耦
问题背景:
我们有一个订单系统,还要一个库存系统,用户下订单了就要调用下库存系统来处理,直接调用到话库存系统出现问题咋办呢?
解决方案:
利用MQ来解耦
解决方案图解:
c. 流量削峰
问题背景:
秒杀活动
服务层直接接受瞬间搞密度访问绝对不可以
解决方案:
利用MQ进行流量削峰
解决方案图解:
d. 日志处理
问题背景:
用户或机器日志收集
解决方案图解:
技术改变世界