RocketMQ系列(一):MQ应用场景

MQ应用场景

1.消息队列概述

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题
实现高性能,高可用,可伸缩和最终一致性架构
使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ

2.MQ的应用场景

以下介绍消息队列在实际应用中常用的使用场景。
异步处理,应用解耦,流量削锋和消息通讯四个场景

2.1 异步处理

场景说明: 用户注册后需要发送注册邮件和短信
(1)串行方式
先保存用户注册信息, 然后发送注册邮件, 再发送注册短信
RocketMQ系列(一):MQ应用场景

(2)并行方式
保存用户信息后, 同时发送注册邮件和短信
RocketMQ系列(一):MQ应用场景

2.2 应用解耦

场景说明: 用户下单后系统减库存,传统模式是订单系统调用库存接口,订单系统与库存系统耦合, 引入消息队列方案后, 用户下单后,保存订单,将消息写入消息队列, 返回结果, 库存系统订阅下单消息进行操作

2.3 流量削峰

场景说明:
秒杀活动中, 一般会因为流量过大导致应用挂掉, 加入消息队列可以缓解压力
首先将用户请求写入消息队列,队列长度超过最大数就丢弃掉请求,系统根据队列的请求消息再做后续处理

2.4 日志处理

日志采集客户端,负责日志数据采集,定时写受写入Kafka队列
Kafka消息队列,负责日志数据的接收,存储和转发
日志处理应用:订阅并消费kafka队列中的日志数据

3. 常用消息队列对比

RocketMQ系列(一):MQ应用场景